设计模式(Golang)

目录

一、设计原则

1. 开闭原则 (Open-Closed Principle, OCP)

2. 单一职责原则 (Single Responsibility Principle, SRP)

3. 里氏替换原则 (Liskov Substitution Principle, LSP)

4. 依赖倒置原则 (Dependency Inversion Principle, DIP)

5. 接口隔离原则 (Interface Segregation Principle, ISP)

6. 迪米特法则 (Law of Demeter, LoD) 或最少知识原则 (Least Knowledge Principle)

7. 合成复用原则 (Composite Reuse Principle, CRP)

二、设计模式

创建型模式

工厂模式

单例模式

建造者模式

结构型模式

适配器模式

装饰者模式

行为型模式

观察者模式

策略模式

其他模式


一、设计原则

软件设计原则是一组指导软件开发人员进行系统设计、模块划分、类和接口定义、代码组织等方面的准则,旨在提高软件的可维护性、可扩展性、灵活性和重用性。原则目的是:高类聚,低耦合。

以下是软件设计领域中广泛认可的一些核心原则: 

1. 开闭原则 (Open-Closed Principle, OCP)

类的改动是通过增加代码进行的,而不是修改源代码。

2. 单一职责原则 (Single Responsibility Principle, SRP)

类的职责单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。

3. 里氏替换原则 (Liskov Substitution Principle, LSP)

任何抽象类(interface接口)出现的地方都可以用他的实现类进行替换,实际就是虚拟机制,语言级别实现面向对象功能。

4. 依赖倒置原则 (Dependency Inversion Principle, DIP)

高层模块不应依赖于低层模块,两者都应依赖于抽象(接口或抽象类),不要依赖具体的实现(类),也就是针对接口编程。

5. 接口隔离原则 (Interface Segregation Principle, ISP)

不应该强迫用户的程序依赖他们不需要的接口方法。一个接口应该只提供一种对外功能,不应该把所有操作都封装到一个接口中去。

6. 迪米特法则 (Law of Demeter, LoD) 或最少知识原则 (Least Knowledge Principle)

一个对象应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性。例如在一个程序中,各个模块之间相互调用时,通常会提供一个统一的接口来实现。这样其他模块不需要了解另外一个模块的内部实现细节,这样当一个模块内部的实现发生改变时,不会影响其他模块的使用。(黑盒原理)

7. 合成复用原则 (Composite Reuse Principle, CRP)

如果使用继承,会导致父类的任何变换都可能影响到子类的行为。如果使用对象组合,就降低了这种依赖关系。对于继承和组合,优先使用组合。

二、设计模式

通常情况下,我们可以将常用的 23 种设计模式分为创建模式结构模式以及行为模式三种类型。

  1. 创建型(Creational)模式:如何创建对象;
  2. 结构型(Structural )模式:如何实现类或对象的组合;
  3. 行为型(Behavioral)模式:类或对象怎样交互以及怎样分配职责。
  1. 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
  2. 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值