第476天 开始学习伽马的《设计模式》

本文介绍了设计模式中对接口编程而非实现编程的原则,阐述了为何使用创建型模式来确保系统遵循接口,以提高系统的灵活性和可维护性。

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

这是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简介而优雅的解决方案。
这不是一本读完一遍就可以束之高阁的书。我们希望你在软件设计过程中反复参阅此书,以获取设计灵感。
学习这些模式,将有助于读者设计出优秀的面向对象设计。

每一个模式描述了一个在我们周围不断重复发生的问题以及该问题的解决方案的核心。


设计模式之间的关系)
动态绑定是指发送的请求直到运行时刻才受你的具体的实现的约束。

第一个原则:对接口编程,而不是对实现编程。

不将变量声明为某个特定的具体类的实现对象,而是让它遵从抽象类所定义的接口。创建型模式确保你的系统是采用针对接口的方式书写的,而不是针对实现的书写的。

第二个原则:优先使用对象组合,而不是类继承。
然后,我们的经验表明:设计者往往过度使用了继承这种复用技术。但一来于对象组合技术的设计却欧根号的复用性(或更简单)。你将会看到设计模式中一再使用对象组合技术。
类继承和组合的比较
类继承(白箱复用):是一个通过复用父类功能而扩展应用功能的基本机制。“白箱”是相对可视性而言,在继承方式中,父类的内部细节对子类可见。
对象组合(黑箱复用):多个对象通过组装或组合来实现新的更复杂的功能。“黑箱”是相对可视性而言,对象的内部细节是不可见的。
优缺点比较

 优缺点类继承对象组合 
优点在编译时静态定义,可以直接使用。 不破坏封装性,对于类的依耐性较少
缺点由于在编译时刻就定义了,无法在运行时改变从父类继承的实现。
子类可以覆盖父类的实现细节,破破坏了封装性。依赖过于紧密,不够灵活。
父类的复用系数不高

委托

委托(delegation)是一种组合方法,它使组合具有与继承同样的复用能力。在委托方式下,有两个对象参与处理一个请求,接受请求的对象将操作委托给它的代理者(delegate)。这类似与子类将请求交给它的父类处理。
今天看到了第24页,明天继续!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值