- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈设计模式
2015.12.30
概念
设计模式不是基于理论发明的。相反,总是先有问题场景,再基于需求和情景不断演化设计方案,最后把一些方案标准化成“模式”。
《设计模式》、 1995 、GOF、23…
设计模式(Design pattern)是什么?
1995年出版的《设计模式: 可复用面向对象软件的基本元素》中,第一次归纳出了23种基本设计模式。这本书讲了23种主要的模式,包括:抽象工厂、适配器、外观模式等。
作者: GOF。 Gangs Of Four 。它的原意是“四人帮”。这四个作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides。
根本原因是为了代码复用,增加可维护性。
设计模式是“框架”,OOD(面向对象编程) 原则是“规范”
设计模式·为什么要使用?
现在有许多设计原则,但是最基本的,就是SOLID(缩写),这五项原则。
S = 单一责任原则
O = 开闭原则
L = Liscov替换原则(里氏替换原则)
I = 接口隔离原则
D = 依赖倒置原则
单一责任原则:一个类有且只有一个职责。一个类可以包含很多方法,但目的都是一个。
开闭原则:软件实体(类,模块,函数等)应该对扩展开放,对修改关闭。
里氏替换原则:使用基类引用的函数必须能够使用派生类而无须了解派生类
鸟
+ 飞行()
麻雀
鸟
+ 飞行()
麻雀
鸵鸟
接口隔离原则 :客户端不应该依赖它不需要的接口,接口实现自己的职责,且清晰明确,易于理解,具有可复用性
依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
类的名称
类的特征,(字段\属性)
类的操作,(方法\行为)
+:代表public
- :代表private
#:代表protected
接口的名称
接口方法
继承关系:空心三角形+实线
:空心三角形+虚线
:实线箭头
聚合表示一种弱
的拥有关系
合成表示一种强
的拥有关系
设计模式分三种类型,共23种
创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
设计模式·类型?
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。
举例
可以在不更换开关的情况下换掉灯泡,也可以在不接触灯泡或者风扇的情况下更换开关,甚至可以在不接触开关的情况下,把灯泡和风扇的开关互换。
是电线以及其他的电工手段把电灯/电风扇与开关连接起来。
我们可以把这概括为沟通不同系统的桥梁。
基本思想是,一个事物不能直接连接另一个事物。通过一些桥梁或接口连接起来。
在软件世界里,我们称之为“松耦合”。
各种开关可以都基于一个开关类,那么灯泡和电扇该怎么做?他们并不是同一种东西。
大体上讲,灯泡和电扇它们都算是电器,可以用一个接口“I 电器”来抽象它们。
生活中有电线,这里我们用封装。
开关只需知道自己可以开/关某个电器(I 电器)
即一开始的开关类有一个I 电器的实例
把抽象和实现解耦,使得它们可以独立地变化
Abstraction是基础的开关基类,
RefinedAbstraction是某个具体的开关类(花式开关和正常开关),
Implementor是电器接口,
ConcreteImplementorA和ConcreteImplementorB是灯泡类。
我们能创建一个新模式吗?有可能吗?
当然可以。设计模式并不是被科学家发明和创造的东西。他们只是被“发现”而已。也就是说,对任何一个普通的问题场景,肯定会有一些好的设计方案。如果我们能识别出一个能解决某个新问题的面向对象设计,那我们就定义了一个新的设计模式。
Thank you
您可能关注的文档
- 扫描操作手册.ppt
- 扫一屋与扫天下2016.12(实用).ppt
- 社会主义建设道路的初期探索说课课件.ppt
- 色彩心理学.课件].ppt
- 诺基亚市场分析概要.ppt
- 社会主义市场经济6.ppt
- 食品13级-生产实习报告.doc
- 沙皇俄国的发展历程及经历的战争改革.ppt
- 茹卡乌斯卡斯横掠顺排管束的数值模拟与公式验证概要.doc
- 食品法规案例.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)