设计模式:总结

设计模式:总结

作者:wlai
发布:2024-04-02
更新:2025-05-10

一、设计模式的核心目标

设计模式的核心目标是管理变化,提高复用,不要为了模式而模式,也不要误用模式。

二、应对复杂问题的两种手段

人类应对复杂问题有两种手段,分别是分解和抽象

三、八大原则

(1)依赖倒置原则(DIP)

(2)开放封闭原则(OCP)

(3)单一职责原则(SRP)

(4)里氏替换原则(LSP)

(5)接口隔离原则(ISP)

(6)对象组合优于继承

(7)封装变化点

(8)面向接口编程

四、重构技法

(1)静态 -> 动态

(2)早绑定 -> 晚绑定

(3)继承 -> 组合

(4)编译时依赖 -> 运行时依赖

(5)紧耦合 -> 松耦合

五、模式分类

从封装变化的角度对设计模式进行分类,有以下几种:

(1)组件协作

  • Template Method

  • Strategy

  • Observer / Event

(2)单一职责

  • Decorator

  • Bridge

(3)对象创建

  • Factory Method

  • Abstract Factory

  • Prototype

  • Builder

(4)对象性能

  • Singleton

  • Flyweight

(5)接口隔离

  • Facade

  • Proxy

  • Mediator

  • Adapter

(6)状态变化

  • Memento

  • State

(7)数据结构

  • Composite

  • Iterator

  • Chain of

  • Responsibility

(8)行为变化

  • Command

  • Visitor

(9)领域问题

  • Interpreter

六、关注变化点和稳定点

一个软件肯定会有变化点和稳定点,设计模式的用处就是隔离变化点和稳定点。

七、什么时候不用设计模式

(1)代码可读性很差时

(2)需求理解还很浅时

(3)变化没有显现时

(4)不是系统的关键依赖点

(5)项目没有复用价值时

(6)项目将要发布时

八、经验之谈

(1)不要为模式而模式

(2)关注抽象类与接口

(3)理清变化点和稳定点

(4)审视依赖关系

(5)要有Framework和Application的区隔思维

(6)良好的设计是演化的结果

九、设计模式成长之路

(1)手中无剑,心中无剑:见模式而不知

(2)手中有剑,心中无剑:可以识别模式,作为应用开发人员使用模式

(3)手中有剑,心中有剑:作为框架开发人员为应用设计某些模式

(4)手中无剑,心中有剑:忘掉模式,只有原则


设计模式:总结
https://wlai.me/design-pattern-summarize/
作者
wlai
发布于
2025年2月10日
许可协议