设计模式0

Golang语言是面向接口语言,并非面向对象语言。为了方便使用,有了接口:https://blog.csdn.net/Vickers_xiaowei/article/details/104630797

封装

import包封装隔离,大小写实现封装,小写对象外不可见,大写对象外可见。

type Human struct{
	name string
}
func(h* Human)SetVal(name string){
	h.name=name
}

大写SetVal类似于其它语言的public属性,name则类似于private属性。

继承

type Human struct{
	name string
}
type Chinese struct{
	human *Human
	language string
}

多态

type Human interface {
	Speak()
}
type Chinese struct{
	name string
}
func(c*Chinese)Speak(){
	fmt.Println("Chinese speak:",c.name)
}
type American struct {
	name string
}
func(a*American)Speak(){
	fmt.Println("Chinese speak:",a.name)
}

单一功能原则

1.就是一个类越复杂,可能被复用的可能性越小
2.类越复杂,变动代码可能会有意想不到的错误。
有一个类T负责两个不同的职责:职责P1和职责P2。当因为职责P1的需求发生改变而需要修改类T的时候,有可能会导致原本运行正常的职责P2功能发生故障。

遵循单一职责原则,分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1的时候,不会使职责P2发生故障风险。同理,当修改T2的时候,也不会使职责P1发生故障风险。
在这里插入图片描述

开闭原则

对于扩展是开放的,对于修改是封闭的。

里式替换原则

继承类可以去替换基类,调用基类的方法。

  1. 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  2. 子类中可以增加自己特有的方法。
  3. 覆盖或实现父类的方法时输入参数可以被放大
  4. 覆盖或实现父类的方法时输入参数可以被缩小

接口隔离原则

客户端不应该依赖它不需要的接口。
一个类对另一个类的依赖应该建立在最小的接口上。

建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。

你是否觉得ISP跟之前的单一职责原则很相似?
其实不然。其一,单一职责原则原注重的是职责;而接口隔离原则注重对接口依赖的隔离。其二,单一职责原则主要是约束类,其次才是接口和方法,它针对的是程序中的实现和细节;而接口隔离原则主要约束接口接口,主要针对抽象,针对程序整体框架的构建。

依赖反转原则

1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。
2、抽象不应该依赖于细节,细节应该依赖于抽象。
在这里插入图片描述
https://www.jianshu.com/p/c3ce6762257c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值