标签:string start tar factor pre 参数 hpc 子类 create

public class CamputerFactory {
public static Computer createComputer1(String type) {
Computer computer = null;
switch (type){
case "Lenovo":
computer = new LenovoComputer();
break;
case "HP":
computer = new HPComputer();
break;
default:break;
}
return computer;
}
}
@Test
public void testSimpleFactory(){
CamputerFactory.createComputer1("Lenovo").start();
}
public interface Computer {
void start();
}
public class HPComputer implements Computer {
private static final String TAG = "HPComputer";
@Override
public void start() {
System.out.print(TAG+" work===========");
}
}
使用场景:
工厂类负责创建的对象比较少
客户只需要知道传入工厂类的参数,而无需关心创建对象的逻辑。
优点:使用户根据参数获得对应的类实例,避免了直接实例化类,降低了耦合性
缺点:可实例化的类型在编译期间已经被确定。如果增加新类型,则需要修改工厂,这违背了开放封闭原则。简单工厂需要知道所有生成的类型 ,当其子类过多或者子类层次过多时不宜使用

标签:string start tar factor pre 参数 hpc 子类 create
原文地址:https://www.cnblogs.com/endian11/p/9131920.html