本文持续更新中...
创建性设计模式
Singleton
定义: 确保有且只有一个对象被创建
难点: 线程安全 => 多线程并行转单线程串行
更多可以参考设计模式 之 Singleton(Java实现)和设计模式 之 Singleton (Objective-C实现)
Simple Factory
定义: 并不是一种设计模式
缺陷: 生成新Product要修改工厂内部逻辑
Factory Method
定义: 将实例的生成交给子类 用继承来代替修改
优势: 对扩展开放 对修改封闭
Abstract Factory
定义: 面向接口编程代替继承 => 依赖翻转
优势: 相比Factory Method适用于创建Product Cluster
Builder
定义: 构造复杂对象
优势: 复用相同的构造过程
Prototype
TODO
结构型设计模式
Adapter
定义: 将一个接口转换成另一个接口
应用: 电源适配插口 / Recyclerview.Adapter
Bridge
定义: 分离接口和实现
应用: JPA支持MySQL、PostgreSQL
Decorator
定义: 不改变原有对象的前提下 添加新的功能
Facade
定义: 简化、统一子系统的多个接口
应用: Laravel Facade
Proxy
定义: 为其他对象提供一种代理以控制对这个对象的访问
应用: Reverse Proxy Server - Nginx
基于Cocoa Frameworks的开发有Delegate的设计方式 更多关于Delegate和Proxy可以参考设计模式 之 结构型模式
Flyweight
TODO
行为型设计模式
Observer
定义: 解耦subject和多个observer
应用: React.js / Vue.js
更多可以参考设计模式 之 Observer
Chain of Responsibility
定义: 解耦request和多个handler
应用: Laravel Middleware / Netty Pipeline
Command
TODO