工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
简单工厂例子中的奶茶接口以及相关奶茶实现类不变。我们只需要增加一个工厂接口以及实现这个接口的工厂类即可。
package com.example.factorypattern;
public interface MilkyTea {
/**
* 制造奶茶
*/
void makeMilkyTea();
}
package com.example.factorypattern;
public class BoBaMilkyTeam implements MilkyTea {
@Override
public void makeMilkyTea() {
System.out.println("制作波霸奶茶");
}
}
package com.example.factorypattern;
/**
* 红豆奶茶
*/
public class OrmosiaMilkyTea implements MilkyTea {
@Override
public void makeMilkyTea() {
System.out.println("制作红豆奶茶");
}
}
package com.example.factorypattern;
public class PearlMilkyTea implements MilkyTea {
@Override
public void makeMilkyTea() {
System.out.println("制作珍珠奶茶");
}
}
package com.example.factorypattern;
public interface Factory {
MilkyTea makeMilkyTea();
}
package com.example.factorypattern;
public class BoBaMilkyTeamFactory implements Factory{
@Override
public MilkyTea makeMilkyTea() {
return new BoBaMilkyTeam();
}
}
package com.example.factorypattern;
public class OrmosiaMilkyTeaFactory implements Factory {
@Override
public MilkyTea makeMilkyTea() {
return new OrmosiaMilkyTea();
}
}
package com.example.factorypattern;
public class PearlMilkyTeaFactory implements Factory {
@Override
public MilkyTea makeMilkyTea() {
return new PearlMilkyTea();
}
}
package com.example.factorypattern;
import com.example.simplefactory.SimpleFactory;
public class Test {
public static void main(String[] args) {
Factory boBaMilkyTeamFactory = new BoBaMilkyTeamFactory();
MilkyTea milkyTea = boBaMilkyTeamFactory.makeMilkyTea();
milkyTea.makeMilkyTea();
}
}