常用GoF设计模式--2

常用GoF设计模式--2

ID:44363823

大小:474.10 KB

页数:15页

时间:2019-10-21

常用GoF设计模式--2_第1页
常用GoF设计模式--2_第2页
常用GoF设计模式--2_第3页
常用GoF设计模式--2_第4页
常用GoF设计模式--2_第5页
资源描述:

《常用GoF设计模式--2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、常用GoF设计模式“22.2.5工厂方法模式解决的办法是:把工厂分为多个了工厂,每个了工厂只生产一种产品,再为所有了工厂定义一个工厂接口,所冇子工厂都实现工厂接口。所有子工厂和工厂接口组成一个“工厂群”,而不是一个简单工厂。为了更形象表示“生产”的含义,把工厂群中的创建对象方法名由“getProductO”改为<

2、tinterface1ShoesFactory1Shoes■createProduct()创建■method()^createProductO匸厂模式类图示意代码如下:服务端产品群:(1)产品接口publicinterfaceProductInterfacepublicvoidmethod();⑵衣服产品publieclassClothesimplementsProductInterface{publievoidmethod(){}}⑶裤了产品publicclassTrousersimplementsProductInterface{publicvoidmethod()}⑷帽子产品p

3、ublicclassCapimplementsProductInterface{publicvoidmethod()}⑸鞋产品publicclassShoesimplementsProductInterface{publicvoidmethod()工厂群:(1)工厂接口publicinterfaceFactorylnterfacepublicProductInterfacecreateProduct();(2)衣服工厂publicclassClothesFactoryimplementsFactoryInterface{publicProductInterfacecreateProd

4、uct(){returnnewClothes();}}(3)裤了工厂publicclassTrousersFactoryimplementsFactorylnterface{publicProductInterfacecreateProduct(){returnnewTrousers();}}(4)帽了工厂publicclassCapFactoryimplementsFactorylnterface{publicProductInterfacecreateProduct(){returnnewCap();}}(5)鞋工厂publicclassShoesFactoryimplement

5、sFactorylnterface{publicProductInterfacecreateProduct()returnnewShoes();客户端:publicclassXYZ{privateProductInterfaceproduct;//仅依*负于产品接口privateFactorylnterfacefactory;//仅依赖于匸丿接口publicvoidwork(){factory=newClothesFactory();//这里必须指定耍哪个子工厂来牛产product=factory.createProduct();product•method();}}本例中,客户端指

6、定衣服工厂来主产,即创建的对彖product实际是衣服对象。今后,在产品群屮每增加一•种产品,就在工厂群屮增加一个对应的子工厂类即可,两边扩展都很灵活。这就是著名的“工厂方法模式”。2.2.6抽象工厂模式抽象工厂模式是比工厂方法模式更抽象的一种模式,它能从几组类中返回其中某一组。还可以通过简单工厂来确定该组中最终返回哪个类。对于2.2.5节中的工厂方法模式,类图如下:XYZ*work()创建「—Factoryinterface创建创建创建-二二X)ProductinterfaceShoes*method()工厂方法模式类图如果把产品群认定为“成年人Adult"类产品:在产品群这边:产

7、品接口改为uAdultProductlnterface所有产品之/前加“Adult”字样,则冇“AdultClothes”、“AdultTrousers”、“AdultCap”、“AdultShoes”。在工丿群这边,所有工厂中的创建方法均改为createAdultProduct()o类图变为:XYZFactoryinterface工厂方法模式类图AdultProductlnterface思考问题3:如果述要生产“儿童children"类产品,怎么办?应该

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。