Design Pattern

名称 定义
单一职责原则 (Single Responsibility Principle, SRP) 类的职责单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。
开闭原则 (Open-Closed Principle, OCP) 类的改动是通过增加代码进行的,而不是修改源代码。
依赖倒转原则 (Dependence Inversion Principle, DIP) 依赖于抽象(接口),不要依赖具体的实现(类),也就是针对接口编程。
合成复用原则 (Composite Reuse Principle, CRP) 如果使用继承,会导致父类的任何变换都可能影响到子类的行为。如果使用对象组合,就降低了这种依赖关系。对于继承和组合,优先使用组合。
工厂方法模式 (Factory Method Pattern) 定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。
抽象工厂模式 (Abstract Factory Pattern) 提供一个创建一系列相关或者相互依赖的接口,而无需指定它们具体的类。
单例模式 (Singleton Mode) 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
代理模式 (Proxy Pattern) 为其他对象提供一种代理以控制对这个对象的访问。
装饰模式 (Decorative Pattern) 动态的给一个对象添加一些额外的职责。就增加功能来说,此模式比生成子类更为灵活。
适配器模式 (Adapter Pattern) 将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
外观模式 (Facade Pattern) 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
模板方法模式 (Template Method Pattern) 子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
命令模式 (Command Pattern) 将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
策略模式 (Strategy Pattern) 准备一组算法,并将每一个算法封装起来,使得它们可以互换。
观察者模式 (Observer Pattern) 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

Reference

《Easy搞定Golang设计模式》