- 0
- 0
- 约4.01千字
- 约 18页
- 2017-12-23 发布于上海
- 举报
简单工厂模式Ok
Java创建对象的方法 所有面向对象的语言都有固定的创立对象的办法。java的办法就是使用new操作符。比如StringBuffer s = new StringBuffer(1000); 使用new操作符的短处是事先必须明确知道要实例化的类是什么 实例化的责任往往与使用实例的责任不加区分。 创立性模式 面向对象的设计的目的之一,就是把责任进行划分,以分派给不同的对象。 创立性模式把对象的创立过程封装起来,使得创立实例的责任与使用实例的责任分割开 由专门的模块分管实例的创立,而系统在宏观上不再依赖于对象创立过程的细节 创立性模式 创立性模式将类实例化,不必事先知道每次是要实例化哪一个类 把实例化的责任与使用实例的责任分割开来 工厂模式 工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。 工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式抽象工厂(Abstract Factory)模式 简单工厂(Simple Factory)模式 比如说,你有一个描述你的后花园的系统,在你的后花园里有各种的花,但还没有水果。你现在要往你的系统里引进一些新的类,用来描述下列的水果: 葡萄 Grapes 草莓 Strawberry 萍果 Apple 简单工厂(Simple Factory)模式 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 源代码 源代码 源代码 源代码 简单工厂(Simple Factory)模式 作为小花果园的主人兼园丁,也是系统的一部分,自然要由一个合适的类来代表,这个类就是 FruitGardener类。 源代码 园丁的工作(简单工厂) FruitGardener类会根据要求,创立出不同的水果类,比如萍果Apple,葡萄Grape或草莓Strawberry的实例。 这里的园丁就如同一个可以创建水果产品的工厂一样 如果接到不合法的要求,FruitGardener类会给出例外BadFruitException。 ????????????????????????????????????????????????????????????????????? 源代码 丰收的果园(客户端) 在使用时,只须呼叫FruitGardener的factory()方法即可 try { FruitGardener gardener = new FruitGardener(); FruitIF grape = gardener.factory(grape); FruitIF apple = gardener.factory(apple); FruitIF strawberry = gardener.factory(strawberry); ... } catch(BadFruitException e) { ...} 小结:简单工厂模式的定义 总而言之,简单工厂模式就是由一个工厂类根据参数来决定创立出那一种产品类的实例。 小结:简单工厂模式的定义 小结:简单工厂模式框架的源代码 public class Creator {public Product factory() { return new ConcreteProduct();} } public interface Product { } public class ConcreteProduct implements Product {public ConcreteProduct(){} } 源代码:FruitIF接口 接口FruitIF的源代码。这个接口确定了水果类必备的方法: 种植plant(),生长grow(), 以及收获harvest()。 package com.javapatterns.simplefactory;public interface FruitIF { void grow(); void harvest(); void plant(); String color = null; String name = null;} 返回 源代码:Apple类 萍果是多年生木本植物,因此具备树龄treeAg
您可能关注的文档
- 第8章 Java小应用程序applet.ppt
- 第7讲 调整图像色彩.ppt
- 第8章 创建和使用宏.ppt
- 第7讲差分方法3.ppt
- 第8章 阻燃剂.ppt
- 第8章国际、国内融资方式.ppt
- 第5章11地理要素的表示方法.ppt
- 第7章access基础.ppt
- 第8讲 毕业生就业案例分析.ppt
- 第8课八国联军侵华与辛丑条约PPT课件.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 药品生产过程中的清洁生产与环境保护策略.docx VIP
- 2023年日历表带节假日全年一页打印版.docx VIP
- 铁路项目监理人员岗位职责.docx VIP
- 【初中 物理】电磁波的应用课件 2025-2026学年沪科版九年级全一册物理.pptx VIP
- 第14篇 世界屋脊——藏族高原游牧文化旅游区.ppt VIP
- (人教版)数学五年级下册计算题“天天练”习题卡,含108份题组.pdf VIP
- 基于组织学视角的异种脱细胞真皮基质研究:动物筛选、制备工艺与体内植入初探.docx VIP
- 2025年度宜都市高新技术产业投资有限公司公开招聘8人(第二批)笔试备考题库及答案解析.docx VIP
- 初中地理新课程标准及解读精选全文.pptx VIP
- 《工业机器人技术基础》考试试卷练习题附答案.pdf VIP
原创力文档

文档评论(0)