设计模式培训-factorymethod
60页1、Design Pattern 设计模式设计模式 工厂方法模式工厂方法模式 张长春张长春 MSN:aphel_ 建立对象实例交给子类 PDF 文件使用 “pdfFactory Pro“ 试用版本创建 复习上一节课的内容 装饰模式:通过创建一个包装对象,也就是装饰来包裹真实的 对象,在不修改被包装对象的基础之上实现新的功能。 设计原则 类的开- 闭原则: 类的设计应当支持扩展而拒绝 修改! Component methodA() methodB() /Other methods ConcreteComponent methodA() methodB() /Other methods Decorator methodA() methodB() /Other methods ConcreteDecoratorA Component wrappedObj methodA() methodB() newBehavior() /Other methods ConcreteDecoratorB Component wrappedObj Object newState methodA() method
2、B() /Other methods component PDF 文件使用 “pdfFactory Pro“ 试用版本创建 复习上一节课的内容 到本节课程为止,我们学习了: OO基础 抽象、封装、多态、继承 OO原则 封装变化 使用组合而不是继承 面向接口编程而不是实现 在相互影响的对象间努力做到松散耦合设计 类的开- 闭原则 OO模式 策略模式Strategy 观查者模式Observer 装饰模式Decorator PDF 文件使用 “pdfFactory Pro“ 试用版本创建 写在课程之前 接下来的课程我们来学习一些松耦合的接下来的课程我们来学习一些松耦合的OO设计设计。除了使用 new操作以外,还有很多制造对象的方法。例如在本节课程 中你将学习到 实例化(instantiation) ,这是一种不总是被公开 执行的行为,它经常导致耦合问题。当然,你不希望那样, 不是吗? OK,看工厂模式怎么把你从糟糕的依赖关系中拯救出来。 PDF 文件使用 “pdfFactory Pro“ 试用版本创建 仔细思考 “new”带来的问题 OK,现在我们已经学习了三个设计模 式以及一些设计原
3、则,可是仍然不能回 答我的新的问题。我们不想面向实现编 程,但是我随时都要使用新的东西,这 就是我极力想解决的,你说对吗? 当然,当你看到new的时候你马上就想实例化 一个具体的类,这样就很明显是面向实现在编 程而不是面向接口。不过这是一个好问题,你 已经意识到了为一个具体的类编程将使得它比 较脆弱并很少有弹性。 Duck duck=new mallardDuck(); 我们本来是想通过接口来使 得我们的代码更具备柔性 但是在这里我们不得不为一 个具体的类创建一个实例 PDF 文件使用 “pdfFactory Pro“ 试用版本创建 想想问题在哪里? 当我们对一个相关的具体类有完整的设置时,通常我们不得不写这样的代码: Duck duck; if (picnic) duck = new MallardDuck(); else if (hunting) duck = new DecoyDuck(); else if (inBathTub) duck = new RubberDuck(); 我们有很多不同的Duck类,并且除非在运 行时被指定,否则我们不知道哪一种Duck 类会被实例化
4、运行时: 例如野餐(picnic)时我们需 要实例化野鸭 (MallardDuck) 当看到这样的代码,我们可以理解如果需求改变了或者功能扩展将花费 我们大量时间,我们不得不重新打开代码来检查到底哪些地方需要增加 (或者修改和删除)。 通常这种类型的代码将使得应用程序的维护和更新变得更加困难,并且 很容易出错。 PDF 文件使用 “pdfFactory Pro“ 试用版本创建 new()方法有什么问题呢? 但是你不得不在某些地 方创建一个对象,并且 Java中只提供了一种方 法(new)来创建对 象,不是吗?难道还有 其他途径吗? 从技术的角度来说,通过new来创建对象是没错的,毕 竟,它是Java中提供的一项基本功能。其实错误的是我 们前面曾经犯过的错,就是“变化”以及变化对我们使用 new方法带来的影响。 如果是面向接口的编程,我们可以隔离一些可能使得系 统崩溃的变化。 为什么呢?如果我们的代码是面向接口的,那么它可以 为任何新的通过多态实现了这个接口的类工作。 不过,当代码需要使用很多具体的类时,我们将发现一 些麻烦,增加新的具体类的时候,我们不得不修改代 码。 所以,换句话说
《设计模式培训-factorymethod》由会员n****分享,可在线阅读,更多相关《设计模式培训-factorymethod》请在金锄头文库上搜索。
项目二财务管理价值观念
山东省安全生产风险分级管控与隐患排查治理信息化系统交流材料-2018.9.26
人教版高中地理必修3第一章地理环境与区域发展第二节《地理信息技术在区域地理环境研究中的应用》
第三章2房地产抵押贷款-固定利率抵押贷款
第八章工程质量法律制度
第25讲家庭电路与安全用电
餐厅点餐系统项目
项目7水箱水位控制
框架完整个人年度工作总结范文模板
科目名称-国土交通省
金融工程09课件
高校自主招生之结构化面试
房地产私募股权投资基金(PE)专题研究.
房地产基础知识培训2012
第一章食品检测技术基础知识
第10章网站设计与建设综合实例
第5章尝试迷人的机器人项目机器人灭火项目
自考英语二unit3
企业人力资源管理师第六章劳动法与劳动关系管理
第三章市场营销宏观环境分析
2022-11-10 14页
2022-08-16 13页
2023-08-28 14页
2023-01-16 11页
2023-04-29 14页
2024-02-10 14页
2022-12-07 13页
2023-01-24 14页
2023-10-31 19页
2023-03-19 8页