设计模式:总结
设计模式:总结
作者: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)手中无剑,心中有剑:忘掉模式,只有原则