20140401第3章 简单工厂模式与工厂方法模式.pdf

20140401第3章 简单工厂模式与工厂方法模式.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
20140401第3章 简单工厂模式与工厂方法模式.pdf

第3章 简单工厂模式与工厂方法模式 本章教学内容 简单工厂模式  问题背景  模式定义与分析  模式实例与解析  模式优缺点  工厂方法模式  问题背景与“里氏代换原则 ”  模式定义与分析  模式实例与解析  模式优缺点 问题背景 想吃苹果!? 问题背景 获取苹果的两种方式 自己种苹果树 去超市买 问题背景 只需要知道水果的名字则可得到相应的水果 问题背景 考虑一个简单的软件应用场景,一个软件系统可以提供多个 外观不同的按钮(如圆形按钮、矩形按钮、菱形按钮等), 这些按钮都源自同一个基类。我们希望在使用这些按钮时, 不需要知道这些具体按钮类的名字,只需要知道表示该按钮 类的一个参数,并提供一个调用方便的方法,把该参数传入 方法即可返回一个相应的按钮对象。 原解决方案 public Button getButton(String type) { Button button; if(type.equalsIgnoreCase(“circle)) { button=new CircleButton(); } else if(type.equalsIgnoreCase(“rectangle)) { button=new RectangleButton(); } 代码复杂,难以维护 else if(type.equalsIgnoreCase(“diamond)) { button=new DiamondButton(); } else …… button.text(); button.color(); button.position(); …… return button; } 本章教学内容 简单工厂模式  问题背景  模式定义与分析  模式实例与解析  模式优缺点  工厂方法模式  问题背景与“里氏代换原则 ”  模式定义与分析  模式实例与解析  模式优缺点 简单工厂模式 模式定义 简单工厂模式(Simple Factory Pattern):专门定义 一个类来负责创建其他类的实例,可以根据参数的不 同返回不同类的实例,被创建的实例通常都具有共同 的父类。但是,简单工厂模式并非GoF23种设计模式 之一。 简单工厂模式 模式结构 简单工厂模式 模式结构 简单工厂模式包含如下角色: • Factory :简单工厂 • Product :抽象产品 • ConcreteProduct :具体产品 简单工厂模式 抽象产品 模式分析 public interface Product { public void algorithm(); } 具体产品 public class ConcreteProductA implements P

您可能关注的文档

文档评论(0)

dlmus + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档