快速业务通道

Java语言抽象工厂创立性模式介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
实工厂类 。

问答题

第1题。如上面的讨论,抽象工厂类可以配备一个静态方法,按照参量的值, 返回所对应的实工厂。请把微型计算机生产系统的抽象工厂类按照这一方案改造 ,给出UML类图和源代码。

第2题。如上面的讨论,抽象工厂类可以配备一系列静态方法对应一系列的实 工厂。请把微型计算机生产系统的抽象工厂类按照这一方案改造,给出UML类图 和源代码。

第3题。如上面的讨论,实工厂类可以设计成单态类。请在第1题的基础上把 微型计算机生产系统的实工厂类按照这一方案改造,给出UML类图和源代码。

问答题答案

第1题。微型计算机生产系统的抽象工厂原本是接口,现在需要改造成抽象类 。

Java语言抽象工厂创立性模式介绍 - 编程入门网

Java语言抽象工厂创立性模式介绍(4)

时间:2010-12-17

图5. 三种不同的背景颜色可以区分抽象工厂类,两类产品族,及其对应的实 工厂类。ComputerProducer 类图中类名为斜体表明该类是抽象的,而 getProducer()的下划线表明该方法是静态的

package com.javapatterns.abstractfactory.exercise1; public class ComputerProducer {   public static ComputerProducer getProducer(String which)   {    if (which.equalsIgnoreCase("PC"))    {     return new PCProducer();    }    else (which.equalsIgnoreCase("Mac"))    {     return new MacProducer();    }   } }

代码清单7. 抽象类 ComputerProducer 的方法 getProducer(String which) 。

第2题。略。

第3题。本题答案是在第1题基础之上的。

Java语言抽象工厂创立性模式介绍 - 编程入门网

图6. 三种不同的背景颜色可以区分抽象工厂类,两类产品族,及其对应的实 工厂类。ComputerProducer 类图中类名为斜体表明该类是抽象的,而 getProducer()的下划线表明该方法是静态的。MacProducer 和 PCProducer 的 构造子是私有的,因此这两个类必须自己将自己实例化。

package com.javapatterns.abstractfactory.exercise3; abstract public class ComputerProducer {   public static ComputerProducer getProducer(String which)   {    if (which.equalsIgnoreCase("PC"))    {     return PCProducer.getInstance();    }    else (which.equalsIgnoreCase("Mac"))    {     return MacProducer.getInstance();    }   } }

代码清单8.抽象工厂类ComputerProducer。

package com.javapatterns.abstractfactory.exercise3; public class MacProducer extends ComputerProducer {   private MacProducer() { } public CPU createCPU() {} public RAM createRAM() {} private static final m_MacProducer = new MacProducer(); }

代码清单9. 实工厂类 MacProducer 是单态类。读过笔者<单态创立性模 式>一节的读者应当知道,这里使用的单态类实现方法是饿汉式方法。

package com.javapatterns.abstractfactory.exercise3; public class PCProducer extends ComputerProducer {   private PCProducer() { } public CPU createCPU() {} public RAM createRAM() {} private static final m_PCProducer = new PCProducer(); }

代码清单10. 实工厂类 PCProducer 是单态类,使用的单态类实现方法是饿 汉式方法。

各产品类没有变化,因此不在此重复。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号