这几天再次复习了工厂模式和抽象工厂模式,发现工厂模式和抽象工厂简直太像了。
工厂模式:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
仔细分析一下发现如下区别和联系:
1、工厂模式的一个工厂只能生产一种产品;抽象工厂生产多个产品(产品族);
2、在工厂模式的工厂中增加生产产品的能力其实就变成了抽象工厂;
3、抽象工厂中的接口要使用抽象的类,这样即使拓展产品也不会导致原有具体工厂直接报错“未实现接口”;这样也使得具体工厂可以只生产部分产品,这样就保证了开闭原则。
总结:其实工厂模式和抽象工厂模式的就是工厂生产产品的能力差别,从工厂模式改进到抽象工厂在进行总结的时候把设计思想描述的太高了。
我认为仅此而已。欢迎指正。