设计模式(学习笔记)(第一章)

简单了解设计模式

1.GOF的23中设计模式

1995 年,GoF(Gang of Four,四人组,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人组成)合作出版了 《Design Patterns: Elements of Reusable Object-Oriented Software》 一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称【GoF设计模式】

两句话:对接口编程而不是对实现编程,优先使用对象组合而不是继承。

2.设计模式的基石

封装、继承、多态、顺序、判断、循环

3.组件的生命周期

4.设计模式的七大原则

1、开闭原则:软件实体应当对扩展开放,对修改关闭。

理解:扩展新类而不是修改旧类。

2、里氏替换原则:继承必须确保超类所拥有的性质在子类中仍然成立。

理解:继承父类而不去改变父类。

3、依赖倒置原则:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。

理解:面向接口编程,而不是面向实现类

4、单一职责原则:一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。

理解:每个类只负责自己的事情,而不是变成万能

5、接口隔离原则:一个类对另一个类的依赖应该建立在最小的接口上。

理解:各个类建立自己的专用接口,而不是建立万能接口

6、迪米特法则:最少知识原则。

只与你的直接朋友交谈,不跟"陌生人"说话"。

理解:无需直接交互的两个类,如果需要交互,使用中间者

缺点:过度使用迪米特法则会使系统产生大量的中介类,从而增加系统的复杂性,使模块之间的通信效率降低。

7、合成复用原则(又叫组合/聚合复用原则)

软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。

理解:优先组合,其次继承。

相关推荐
视觉小萌新9 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
高晶11 小时前
SPMI 控制器 RTL 设计与验证新手入门
设计模式·程序员·架构
yyyang8812 小时前
蓝牙系统整体架构详解
学习·信息与通信
程序边界12 小时前
一台数据集成软件的拆解笔记(下):一致性、容错、跑批与迁移,KFS 真正难的地方在这
java·前端·笔记
Linux-lucky12 小时前
46-Linux学习之旅之LVS负载均衡与keepalived高可用
linux·运维·学习·ubuntu·负载均衡·lvs
金色光环14 小时前
【DSP学习】C2000_ADC中断_笔记
笔记·学习
Дерек的学习记录14 小时前
Unreal Engine 5:第三人称运动系统和人物动画
开发语言·学习·ue5
zhangrelay14 小时前
mrpt杂乱笔记-26-10-31
笔记·学习
熊猫钓鱼>_>14 小时前
平行视界兼容模式与魔法变量配置避坑【鸿蒙心迹】
运维·服务器·开发语言·笔记·华为·harmonyos·openharmony
衡石科技15 小时前
让多轮问数保持口径一致:Data Agent 的上下文、偏好与学习开关
人工智能·学习·安全