设计模式 第一天 (golang版本)

本文介绍了开闭原则(OCP)在编程中的应用,通过创建抽象接口和具体的实现类展示如何通过增加代码而非修改源码进行类的扩展,强调了面向接口进行业务封装的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开闭原则(OCP)

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

// 抽象的老师
type AbstractTeacher interface {
	Teach() // 抽象的教学接口
}

// 数学老师
type MathTeacher struct {
}

func (m *MathTeacher) Teach() {
	fmt.Println("教数学。。。。")
}

// 语文老师
type ChineseTeacher struct {
}

func (c *ChineseTeacher) Teach() {
	fmt.Println("教语文。。。")
}

// 基于抽象层进行业务封装-针对interface接口的封装
func TeacherTeaching(techer AbstractTeacher) {
	// 通过接口向下调用
	techer.Teach()
}

func main() {
	 教数学
	//mt := MathTeacher{}
	//mt.Teach()
		教语文
	//ct := ChineseTeacher{}
	//ct.Teach()
	//	 教数学
	TeacherTeaching(&MathTeacher{})
	//	教语文
	TeacherTeaching(&ChineseTeacher{})
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值