- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
《Java与模式》作者阎宏博士
《Java 与模式》作者阎宏博士 电子工业出版社出版 第12 章 简单工厂(Simple Factory) 模式 简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method )模式。 简单工厂模式是由一个工厂对象决定创建出那一种产品类的实例。 12.1 工厂模式的几种形态 工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类 实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: (1)简单工厂(Simple Factory)模式,又称静态工厂方法模式(Static Factory Method Pattern )。 (2 )工厂方法(Factory Method )模式,又称多态性工厂(Polymorphic Factory )模式 或虚拟构造子(Virtual Constructor )模式; (3 )抽象工厂(Abstract Factory )模式,又称工具箱(Kit 或Toolkit )模式。 下面就是简单工厂模式的简略类图。 简单工厂模式,或称静态工厂方法模式,是不同的工厂方法模式的一个特殊实现。在 其他文献中,简单工厂往往作为普通工厂模式的一个特例讨论。 在Java 语言中,通常的工厂方法模式不能通过设计功能的退化给出静态工厂方法模式。 因为一个方法是不是静态的,对于Java 语言来说是一个很大的区别,必须在一开始的时候 就加以考虑。这就是本书将简单工厂单独提出来讨论的一个原因。学习简单工厂模式是对 学习工厂方法模式的一个很好的准备,也是对学习其他模式,特别是单例模式和多例模式 的一个很好的准备,这就是本书首先讲解这一模式的另一个原因。 第139页 ·140 · Java 与模式 12.2 简单工厂模式的引进 比如说有一个农场公司,专门向市场销售各类水果。在这个系统里需要描述下列的水 果: 葡萄 Grape 草莓 Strawberry 苹果 Apple 水果与其他的植物有很大的不同,就是水果最终是可以采摘食用的。那么一个自然的 作法就是建立一个各种水果都适用的接口,以便与农场里的其他植物区分开。如下图所示。 水果接口规定出所有的水果必须实现的接口,包括任何水果类必须具备的方法:种植 plant() ,生长grow() 以及收获harvest() 。接口Fruit 的类图如下所示。 这个水果接口的源代码如下所示。 代码清单 1:接口Fruit 的源代码 public interface Fruit { /** * 生长 */ 第12 章 简单工厂(Simple Factory)模式 ·141 · void grow(); /** * 收获 */ void harvest(); /** * 种植 */ void plant(); } 描述苹果的Apple 类的源代码的类图如下所示。 Apple 类是水果类的一种,因此它实现了水果接口所声明的所有方法。另外,由于苹 果是多年生植物,因此多出一个 treeAge 性质,描述苹果树的树龄。下面是这个苹果类的 源代码。 代码清单2 :类Apple 的源代码 public class Apple implements Fruit { private int treeAge; /** * 生长 */
有哪些信誉好的足球投注网站
文档评论(0)