简单工厂模式
1,传统方式的类图
2,传统方式的缺陷以及改进方式
所谓的“其他地方也有创建Pizza的代码”是指OderPizza3之类的
3,简单工厂模式的基本介绍
4,
5,简单工厂的类图
使用了简单工厂模式之后,如果再增加新的产品(披萨),订购的地方(OrderPizza)不再需要改变,只需要改变SimpleFactory即可。自此以后,当添加新产品时,只需要对简单工厂进行修改,而使用简单工厂的OrderPizza,OrderPizza2,OrderPizza3不再需要改变
工厂方法模式
1,简单工厂模式在新的需求出现之后,它的不足展现了出来
2,工厂方法模式的介绍
3,再次介绍新的需求
4,工厂方法类图
值得注意的是:
(1)在简单工厂模式中createPizza()方法是在SimpleFactory.java类中,而在工厂方法模式中,这一方法在OrderPizza.java类中。(在简单工厂模式中,OrderPizza.java类中聚合了SimpleFactory.java类)。 即简单工厂模式是直接在OrderPizza.java类通过调用SimpleFactory.java类中的createPizza()方法获得披萨。而在工厂方法模式中,是直接在OrderPizza里createPizza。 当然,这里OrderPizza.java类中的createPizza()方法是一个抽象方法,其具体实现还是在OrderPizza.java类的子类(如BJOrderPizza中实现)
(2)这里的OrderPizza.java实现了工厂的功能
抽象工厂模式
1,抽象工厂模式介绍
2,抽象工厂类图