简单工厂模式:
简单工厂类:内有一个产品抽象类型的成员变量,控制着生产具体产品的逻辑(switch-case语句)
产品的抽象类:
具体的产品类:继承或实现了产品的抽象类(接口)。
举例来说,有生产手机(产品的抽象类)的工厂(简单工厂),工厂需要根据(相关负责人)传来的命令来决定是生产小米手机还是苹果手机(这个工厂有点像富士康)。这个小米手机和苹果手机就是手机的具体类。关于UML图示:
程序如下:
工厂方法模式:
与简单工厂相比多了工厂类的抽象,工厂类不再有控制有生产具体产品的逻辑,根据需要的产品选择对应的具体的工厂。
在简单工厂里增加判断逻辑,不利用程序的维护下,扩展性,比如,要加一个生产华为手机的选择,只能修改简单工厂类的实现。此时,对简单工厂类进行修改,
抽象工厂模式:
相比工厂方法模式,产品多了系列的概念。