欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

工厂方法(Factory-)模式

  • 资源ID:201720348       资源大小:37.99KB        全文页数:10页
  • 资源格式: DOCX        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

工厂方法(Factory-)模式

12 工厂措施(Factory Mthd)模式     工厂措施模式是类的创立模式,又叫虚拟构造子(VirtualConsructor)模式或者多态性工厂(olmorphicFacory)模式。    工厂措施模式的用意是定义一种创立产品对象的工厂接口,将实际工作推迟到子类中。 .2.1 工厂措施模式的引进    工厂措施模式是简朴工厂模式的进一步抽象和推广。由于使用了多态性,工厂措施模式保持了简朴工厂模式的长处,并且克服了它的缺陷。下面是工厂措施模式的缩略类图:     在工厂措施模式中,核心的工厂类不再负责所有产品的创立,而是将具体创立的工作交给子类去做。这个核心工厂则变为抽象工厂角色,仅负责给出具工厂子类必须实现的接口,而不接触哪一产品创立的细节。    这种抽象的成果,使这种工厂措施模式可以用来容许系统不修改具体工厂角色的状况下引进新产品,这一特点无疑使得工厂模式具有超过简朴工厂模式的优越性。 12.2 工厂措施模式的构造    在工厂措施模式中,一般均有一种平行的级别构造,也就是说工厂和产品是相应的的。抽象工厂相应抽象产品,具体工厂相应具体产品。简朴的示意图如下:     从上图可以看出,工厂措施模式的系统波及到了如下角色:   抽象工厂角色:与应用程序无关,任何在模式中创立对象的工厂必须实现这个接口。    具体工厂角色:实现了抽象工厂接口的具体Java类,具有与引用密切有关的逻辑,并且受到应用程序的调用以创立产品对象。    抽象产品角色:工厂措施所创立产品对象的超类型,也就是产品对象的共同父类或共同拥有的接口。    具体产品角色:这个角色实现了抽象产品角色所声名的接口。工厂措施所创立的每个具体产品对象都是某个具体产品角色的实例。 1.2.3 工厂措施模式在农场系统中的实现 .2.31 背景    在简朴工厂模式中,有个全能的园丁,控制所有作物的种植、生长和收获。目前农场规模变大了,管理更加专业化了。过去全能的园丁没有了,每一种作物均有专门的园丁管理,形成了规模化和专业化生产。 12.2 系统设计机构图 .2.3.3 实现源码 1.2.3.1 水果产品接口Frit.javpackage c.lavasoft.tens.fatoymhod.ybm;/* *工厂模式-工厂措施模式-一般性模式(农场应用)  ReadMe: 水果接口 */pulic intrface ruit    /*     种植     */    od lant();    /*     * 生长     */   void gro();    /     * 收获     *    voidhrvest(); 1.3.2 具体产品苹果Ape.javapackage co.lasof.pters.fatorymehod.ybs;/* 工厂模式-工厂措施模式-一般性模式(农场应用) * ReadMe:  水果工厂的产品:苹果 */pbliccls ApeiplemetsFruit     private int reA;   /*     种植     */    publicid plant()        ystout.pintl("Aplha been lated.");        *     *生长    /   pulic voidgo()         Ssem.o.prnln("ppe is gowin.");       /*     收获     *    publcvoidharvt()         ytem.ourinln("Ale hs be harested.");        /*     * return 返回树龄    */    lc int gereeAg()         ern treeAg;        /*     设立树龄     */   pulic voidstTreeAge(it eeAg)         this.treeAge = treAge;    1.2.3.3.3 具体产品葡萄:Gpe.jvapakage olavasoft.ptterns.facorymethod.yb;/* 工厂模式-工厂措施模式-一般性模式(农场应用) * eadMe:  水果工厂的产品:葡萄 */pubc cas Grape implemens Fu     pivateoola sedes;   /与否有籽    /*     * 种植     */    ublic vd pat()        Sste.out.prntln(rap has beenlanted.");        *     * 生长     */    pblc voidgro()         Stem.outprntn("rap grow.");        /*     * 收获     */    public vidavst()       System.t.rintln("Grae has been hrvested.);       *     * eturn 与否有籽     /   ublola getSeedls()        retn seedless;        *     * 有无籽的赋值措施     /   pubic o sess(olean edess)         this.eles seedles;       /*     辅助措施    /    pblic staic vdlog(Strigmsg)         Sytem.ouprint(sg);    1.2.34 具体产品草莓:Strawberry.javapakagem.laof.ttrns.fatorymeto.ybms;/* * 工厂模式-工厂措施模式-一般性模式(农场应用) * eadM: 水果工厂的产品:草莓 /ubic clss Strwery ipements Fuit    /*    *生长     */    public void go()         Sytem.printn("rery is groing.");       *    * 收获     *    publivod haret()         ystem.out.prinn("Srawrr has beenharveed.");       /*     *种植     /    blc void pant()         System.outintn("Srawbery hs been planted");      /*     * 辅助措施     *    plc stti void o(tring m)         Syste.out.pritln(msg);     1.2.3.3.5 水果工厂接口:Fruitden.jvpacke com.lavasf.patrnfctoryetd.ym;* * 工厂模式-工厂措施模式-一般性模式(农场应用) * ReadM:  水果工厂接口 */pubic interfaceFrutarener     /*     * 工厂措施     *     * retrn 水果     */    pubic Fritfactory(); 1.3.3 苹果工厂:ApleGareejavapackage com.lavasot.attrn.factrymetho.ybms;/* * 工厂模式-工厂措施模式-一般性模式(农场应用) * ReadMe:  苹果工厂措施 */pulic class AppleGarer imlements Fritarer    *     * 工厂措施     *    rtu 苹果    */    puic Frui ct()         ru f= nwAppl();        Sytem.outpnln("水果工厂(ApetGarener)成功创立一种水果:苹果!");        reurn ;    1. 葡萄工厂:rpGardeerjavpackageom.lavasoft.parnsfactormethodyms;/* * 工厂模式-工厂措施模式一般性模式(农场应用) Reade:  添加阐明 *pubi clss Gaeardener imlmnts FruitGardene    /*     工厂措施    * reurn葡萄     */    public Fut acor()       t f = ne Grp();        Sys.priln("水果工厂(Grapearener)成功创立一种水果:葡萄!");        retr f;     1.2.3. 草莓工厂:StawerryGener.vapacae com.lavasftpaten.factrymthdybms;/* *工厂模式-工厂措施模式-一般性模式(农场应用) *RedMe:  添加阐明 bic lsawrryGardeer iplemnts FruitGarener    /*     *工厂措施     * eturn 草莓     /   ublic Fruit actory()         rui f =e Stawberry();        Sstem.ut.printn("水果工厂(trwberyGardene)成功创立一种水果:草莓!");       et f;    123.3.9 测试类(客户端):TesAp.jaapackage om.aasoftpatterns.fatorymthod.b;/ * 工厂模式-工厂措施模式-一般性模式(农场应用) *Reae:  测试类(客户端) */pblc classesApp     pite Fritrdeerf1,2, f;    prveFruit p1, p, 3;    pivae void te()        /实力化水果工厂        1 newApplGrder();       f2 = ew Greardner();        f3 = ne StwberGrdener();        从水果工厂生产水果        = f1.aoy();        p2 =f2.fcoy();        p3 = f3.facto();       ublicsi od ma(Srng rgs)        Ttpp test = new TstApp();        es.tst();     .3.30 测试运营成果   水果工厂(pplGrdene)成功创立一种水果:苹果!    水果工厂(GpeGaree)成功创立一种水果:葡萄!    水果工厂(tawbrGadner)成功创立一种水果:草莓!    rocess inshdwext o 0 1.2.3.4 有关工厂措施模式的实现   在下面我简朴说说某些实现方式,不做具体分析了。 1.使用java接口或者java抽象类l 使用多种工厂措施l .产品循环使用l 4.多态性的丧失和模式的退化,重要体目前工厂措施创立对象、工厂措施返回的类型、工厂级别构造三个方面。l 1.2.35 女娲举绳造人    女娲举绳造人是工厂措施模式的一种实例。下面仅仅给出设计图如下,具体编码请您自己实现。     呵呵,学会了简朴工厂模式再来学工厂措施,是不是很容易啊,看懂农场一种例子就够了,多实践多思考比什么都好!

注意事项

本文(工厂方法(Factory-)模式)为本站会员(回****)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!