标签: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