设计模式 -I(介绍)
一个完全理解设计模式的系列
编写软件需要一套规则和方法论,以在不重做的情况下将您的想法带到中心点,以便将来进行增强。 在软件工程中,我们有一套由 Robert Martin 提出的原则,称为 SOLID 原则。 SOLID 一词的原则包括单一责任原则、开放封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。 让我用一个词来解释 SOLID
SOLID
单一责任原则 – 类应该只有一个强烈的改变原因。
开放/封闭原则 – 实体应该仅对添加新功能开放,并在测试阶段后对任何更新关闭。
里氏替换原则 – 访问基类的函数必须能够访问派生类
接口隔离原则 – 客户端应完全使用接口成员。
依赖倒置原则 – 高级模块和细节应该只依赖于抽象。
软件设计工程的其他主要原则是
DRY (不要重复自己):代码在系统中应该只出现一次。
KISS (保持简单,愚蠢!):应避免不必要的复杂代码。
YAGNI (你不需要它):在您需要时实现这些东西
这些原则有助于将您的软件代码维护为可管理、可扩展和可重用的代码,并有助于加快开发速度。
为了代码重用,引入了设计模式。 设计模式由 Christopher Alexander 于 1977 年提出,Kent Beck 和 Ward Cunningham 于 1987 年提出。设计模式被认为是软件设计中常见问题的可重用解决方案。 设计模式的优点是,它们为软件设计中常见的问题提供了解决方案,它们可以用任何语言实现,提供标准术语并特定于特定场景。 设计模式分为 5 类。
Creational Patterns
Structural Patterns
Behavioral Patterns
模型 – 视图 – 控制器模式
并发模式
Creational Patterns
创建型模式是处理对象创建的模式。 当以下情况时,可以应用创建型模式
系统应该独立于其对象和产品的创建方式。
两个或多个对象设计为彼此使用。
实例可以扩展,无需修改。
类的子类想要访问类对象。
揭示产品的接口。
构建不同的独立复杂对象。
可以随时访问单个实例。
这些创建型模式的结构包含创建及其具体创建者。 创建模式组包含 7 个设计模式。
抽象工厂
Factory Method
Builder
延迟初始化
对象池
原型
单例
Structural Patterns
结构型设计模式用于以简单的方式定义实体关系。 结构模式使用继承来组合接口或实现。 结构模式对于开发协同工作的独立类库很有用。
结构模式有 11 个模式。
适配器
Aggregate
桥梁
复合
装饰器 (Decorator)
可扩展性
外观
享元
管道和过滤器
私有类数据
Proxy
Behavioral Patterns
行为型设计模式识别对象之间的常见通信并实现这些模式。 这些模式增加了对象之间通信的灵活性。
行为模式有 19 个模式。
责任链
命令
将堆栈外部化
分层访问者
Interpreter
迭代器
中介器 (Mediator)
备忘录
空对象
观察者
弱引用
协议栈
计划任务
单次服务访问者
Specification
状态
策略
模板方法
访问者
模型-视图-控制器
模型视图控制器设计模式有其自己的身份,它有 3 个相互连接的部分,模型、视图和控制器。 我们主要将其用于用户界面。
并发模式
这些模式主要处理多线程编程。 它们与面向模式的软件架构相关联。 并发模式有 11 个模式。
活动对象
Balking 模式
双重检查锁定模式
保护性暂停
领导者/追随者模式
监视器对象
反应器模式
读写锁模式
调度器模式
线程池模式
线程本地存储
……待续
References:
-
https://codeproject.org.cn/Tips/654769/Software-Design-Principles http://www.dotnet-tricks.com/Tutorial/designpatterns/RPW2250513-Different-Types-of-Software-Design-Principles.html
- http://en.wikipedia.org/wiki/Software_design_patterns