- 2
- 0
- 约2.83千字
- 约 37页
- 2022-07-20 发布于湖北
- 举报
* 工厂方法(Factory Method) 产品类 工厂方法(Factory Method) 依赖与依赖倒置 依赖与依赖倒置 依赖倒置原则 定义: 高层模块不应依赖底层模块,底层模块也不应依赖高层模块,二者都应该依赖抽象 依赖与依赖倒置 其它常用得模式 单例(Singleton) 适配器(Adapter) 桥接(Bridge) 门面(Facade) 代理(Proxy) 观察者(Observer) 策略(Strategy) 两个忠告 设计模式得作用是解决问题,而不是为了模式而模式 我们研究设计模式得目得是实用,不是为了学术研究 软件设计书籍 三、 软件设计书籍推荐 敏捷软件开发:原则、模式与实践(Robert C Martin) Head First设计模式 设计模式:可复用软件软件设计得基础(GoF) 代码大全(第二版)(Steve McConnell) 实现领域驱动开发(Vanghn Vernon) 企业应用架构模式(Martin Fowler) 介绍了软件设计得几个原则:单一职责、依赖倒置、里氏替换、接口隔离和开闭原则 介绍了简单工厂模式、工厂方法模式得使用,列举了一些常用得设计模式 推荐了基本软件设计方面得书籍 * * * * * * * * * * * * * * * * 子类来决定如何创建Pizza。 我们返回去看,父类的orderPizza()方法,并不知道是被做出来的是哪一种Pizza,只知道“做”Pizza的这个动作,只知道Pizza可以被烘烤、切片、装盒。 这就是抽象,把“做”Pizza抽象了,隔离了。 我们看看运行过程。 * * * * 软件架构设计原则与模式 目录 一、软件设计原则 二、设计模式介绍 三、设计书籍推荐 软件设计原则 一、 单一职责原则 定义: 一个模块(类、函数)只负责一项职责 益处: 1、降低模块复杂度,提高可读性、可维护性 2、降低变更得频率、变更引起得风险 依赖倒置原则 定义: 高层模块不应依赖底层模块,底层模块也不应依赖高层模块,二者都应该依赖抽象 益处: 1、提升系统得结构稳定性 2、低耦合 里氏替换原则 定义: 所有引用基类得地方必须能透明地使用其子类得对象 益处: 1、提升结构稳定性 2、提高代码可读性、可维护性 接口隔离原则 定义: 客户端不应该依赖它不需要得接口 益处: 1、提升结构稳定性 2、提高代码可读性、可维护性 开闭原则 定义: 当软件需要变化时,尽量通过扩展软件实体得行为来实现变化,而不是通过修改已有得代码来实现变化 益处: 1、提升系统运行稳定性 2、减少测试、修改等工作量 设计模式介绍 二、 什么是设计模式 软件设计中得成功经验 软件设计中得交流语言 特定得软件设计上下文中,针对特定问题得解决方案 可复用软件开发得基础 如何创建对象? 1、new xxx() 2、简单工厂(Simple Factory) 3、工厂方法(Factory Method) 大家应该也有点累了,稍作休息 大家有疑问的,可以询问和交流 new xxx() 最简单做法 看到了new,就会想到“具体”。 当有一群相关得具体类时,通常会写出以下得代码: Pizza oderPizza(String type){ Pizza pizza; if(type、equals(“cheese”)){ pizza = new CheesePizza(); } else if(type、equals(“greek”)){ pizza = new GreekPizza(); } pizza、prepare(); pizza、bake(); pizza、cut(); … } 工厂(Factory) Pizza oderPizza(String type){ Pizza pizza; pizza、prepare(); pizza、bake(); pizza、cut(); … } 创建一个部件,来专门创建Pizza。我们称这个部件为工厂 简单工厂(Simple Factory) public class SimplePizzaFactory(String type){ Pizza pizza; if(type、equals(“cheese”)){ pizza = new CheesePizza(); } else if(type、equals(“greek”)){ pizza = new GreekPizza(); } … return pizza; } 使用简单工厂后 使用简单工厂后 简单工厂(Simple Factory) LNPizzaFactory lnFactory = new LNPiz
您可能关注的文档
- 醛和酮的性质.pptx
- 醛酮的化学性质.pptx
- 醛酮的亲核加成反应.pptx
- 群文阅读童谣.pptx
- 认知障碍的主要表现形式.ppt
- 融资租赁与银行合作方式.ppt
- 软件测试等价类划分边界值划分.pptx
- 软文写作总复习.pptx
- 腮腺手术配合.pptx
- 腮腺肿瘤切除术.pptx
- 安徽省安庆市潜山市部分学校2025-2026学年七年级下学期阶段学情自测数学试题-普通用卷.docx
- 2026《微型无人机的设计基础综述》2600字.docx
- 安徽六安市金安区2025-2026学年八年级上学期2月期末物理试题-普通用卷.docx
- 2026《五菱汽车公司经营者股权激励实施成效及其启示》9700字.doc
- 北京市第一零九中学2026届高三下学期开学考试数学试题-普通用卷.docx
- 北京海淀实验中学2026届高三下学期数学开学检测试题-普通用卷.docx
- 2026《五菱汽车公司融资模式及融资风险分析》8700字.doc
- 2026《五菱汽车公司物流成本控制研究》文献综述开题报告(含提纲)3800字.doc
- 2026《五菱汽车公司薪酬改革问题研究》开题报告(文献综述)4200字.doc
- 2026《物流企业反内卷的战略转型研究—以顺丰控股为例》13000字.doc
最近下载
- 儿科学(第10版)儿童心肺复苏.pptx VIP
- 《第1课 身边的算法》说课稿教学反思-2023-2024学年小学信息技术浙教版2023五年级上册.docx VIP
- 2025-2026学年浙美版(新教材)小学美术三年级下册(全册)教学设计.docx
- 2025-2026年演出经纪人之演出市场政策与法律法规模拟题库及答案下载.pdf VIP
- 幼儿园教师春季卫生保健知识培训.pptx VIP
- 高速公路旧沥青路面铣刨料再生利用:技术、效益与前景.docx VIP
- 2025-2026学年浙美版(新教材)小学美术三年级下册《运动会奖杯设计》教学设计.docx VIP
- 2024 - 2025人教版(PEP)英语小学二年级下册教学计划 .docx VIP
- 2026年XX施工安全免责协议书.docx VIP
- DLT5300-2013 1000kV 架空输电线路工程施工质量检验及评定规程.docx VIP
原创力文档

文档评论(0)