设计模式-golang实现之七大设计原则

本文详细介绍了设计模式中的七大设计原则,包括开闭原则、单一职责原则、里式替换原则、依赖倒置原则、接口隔离原则、迪米特法则和合成复用原则,并通过实例阐述了每个原则的核心思想和实际应用,旨在提高代码的复用性、可维护性和模块间的解耦性。
摘要由CSDN通过智能技术生成

七大设计原则

离娄之明,公输子之巧,不以规矩,不能成方圆。 ——邹·孟轲《孟子·离娄上》

如果您觉得文章不错,可以到GitHub赏一个star,感激不尽,里面有全部的23种设计模式和面试常考的数据结构的实现。

设计原则

开闭原则

开闭原则(Open Closed Principle,OCP) 由勃兰特.梅耶(Bertrand Meyer)提出,他在1988 年的著作《面向对象软件构造》( Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension, but closed for modification),这就是开闭原则的经典定义。

**开闭原则是设计模式中的总原则,开闭原则就是说:对拓展开放、对修改关闭。**模块应该在尽不修改代码的前提下进行拓展,这就需要使用接口和抽象类来实现预期效果。
我们举例说明什么是开闭原则,以4s店销售汽车为例,其类图如图所示:

ICar接口定义了汽车的两个属性:名称和价格。BenzCar是一个奔驰车的实现类,代表奔驰车的总称。Shop4S代表售卖的4S店,ICar接口的代码清单如下

type ICar interface {
     
 // 车名  
 GetName() string
 // 价格  
 GetPrice() int
}

一般情况下4S店只出售一种品牌的车,这里用奔驰为例,代码清单如下

type BenzCar struct {
   
	name string
	price int
}

func (b BenzCar) GetName() string {
   
	return b.name
}

func (b BenzCar) GetPrice() int {
   
	return b.price
}

这里我们模拟一下4s店售车记录

func TestBenzCar_GetName(t *testing.T) {
   
	var (
		list []ICar
	)
	list = []ICar{
   }
	list = append(list,&BenzCar{
   "迈巴赫",130})
	list = append(list,&BenzCar{
   "AMG",343})
	list = append(list,&BenzCar{
   "V",60})
	for _,v := range 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值