C# 设计模式
软件工程中的设计模式是对软件设计中常见问题的通用、可重用解决方案。
开发人员在开发应用程序或在软件应用程序生命周期中会遇到一些常见和重复的问题,例如对象的创建和销毁、对象之间的交互、增强内聚性和松散耦合的类结构、以最小化源代码更改的方式修复错误等。
设计模式用于在开发阶段解决这些常见问题,以便在部署后最小化问题。设计模式为特定的面向对象编程问题提供了特定的实现。例如,如果你想确保一个类只存在一个实例,那么你可以使用单例设计模式,它提供了一种创建只能有一个对象的类的最佳方法。
设计原则与设计模式不同。了解设计原则和设计模式之间的区别。
如何使用设计模式?
你可以使用一个或多个设计模式组合来解决软件应用程序中的问题。每个模式都有用例,表明该模式可能是一个很好的匹配。
一个模式可能有积极或消极的后果。当模式对你的问题有更多优点而非缺点时,才实施它。
有时两个或更多设计模式解决一个问题。在实施设计模式之前,你必须比较并理解它们之间的差异。
23 种设计模式(GoF)通常被认为是所有其他模式的基础。GoF 指的是四位作者,他们在 1994 年出版了一本名为《设计模式:可复用面向对象软件的元素》的书,至今仍在使用。
设计模式的类型
设计模式分为三组:创建型、结构型和行为型。
创建型设计模式
创建型设计模式解决了与对象创建相关的问题。它们有助于抽象跨多个类的对象创建过程。
以下五种模式是创建型设计模式
- 单例模式
- 抽象工厂模式
- 建造者
- 工厂方法模式
- 原型
结构型设计模式
结构型设计模式建议实现类和对象之间的关系。
以下七种模式是结构型设计模式
- 适配器
- 桥接
- 组合
- 装饰器
- 外观
- 享元
- 代理
行为型设计模式
行为型设计模式建议类和对象之间的通信方式。
以下十二种模式是行为型设计模式
- 责任链
- 命令
- 解释器
- 迭代器
- 中介者
- 备忘录
- 观察者
- 状态
- 策略
- 模板方法
- 访问者
- 中介者