首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式-工厂方法模式

2012-10-20 
设计模式----工厂方法模式??接着简单工厂模式,来个续集,工厂方法模式。在上一集中,披萨店卖的很火,你赚的是

设计模式----工厂方法模式

?

?接着简单工厂模式,来个续集,工厂方法模式。

在上一集中,披萨店卖的很火,你赚的是盆满钵满,后面要加入加盟店(比如:纽约,芝加哥等),每一家加盟店制造的披萨又不一样,有芝加哥奶酪披萨(ChicagoStyleCheesePizza),芝加哥素披萨(ChicagoStyleVeggiePizza),纽约奶酪披萨(NYStyleCheesePizza),纽约素披萨(NYStyleVeggiePizza),此时怎么办?

什么模式都不用的披萨店代码:

?

?

?

?

?

?

?

?

OK,代码完工,可以看出,披萨的生产是由具体的子类披萨店来生产的,披萨店将生产披萨方法(createPizza)写为抽象方法,而在芝加哥披萨店(ChicagoPizzaStore)和纽约披萨店(NYPizzaStore)生产出来

这就是工厂方法模式。具体定义:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类中。工厂方法模式类图如下:(倒,貌似我没找到贴图的方法,暂时以附件形式上传,

找到方法在贴出来)

?


设计方式-工厂方法模式

?

结合前面简单工厂模式,那简单工厂模式和工厂方法模式的区别是什么?

1.简单工厂把全部事情,在一个地方都处理完了,然而工厂方法却创建了一个框架,让子类决定如何实现

2.简单工厂,是将对象的创建封装起来,但是简单工厂不具备工厂方法的弹性,因为简单工厂不能变更正在创建的产品(工厂方法的创建者子类继承父类,当换成另一个子类,就可以换产品,其实就是面向接口编程)

?

OK,到此结束,谢谢收看。。。

?

?

热点排行