HeadFirst 设计模式 7适配器模式与外观模式

适配器模式

将一个类的接口,转换成客户期望的另一个接口。适配器让原来接口不兼容的类可以合作无间。


对象适配器类图:


类适配器类图(需要多继承):


区分各个模式间的意图:

装饰者模式:不改变接口,但加入责任

适配器模式:将一个接口转换成另一个接口

外观模式:让接口更简单


外观模式:

提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。


设计原则:

“最少知识”原则:只和你的密友谈话。希望我们在设计中,不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。若许多类之间相互依赖,那么这个系统就会变成一个易碎的系统,需要高成本维护,复杂且不易理解。

就任何对象而言,在该对象的方法内,我们应该只调用属于以下范围内的方法:

(1)该对象本身

(2)被当作方法的参数而传递进来的对象

(3)此方法所创建或实例化的任何对象

(4)对象的任何组件(组件指:被实例变量所引用的任何对象;即HAS-A 关系)


要点:

(1)当需要使用一个现有的类而其接口并不符合你的需要时,用适配器。

(2)当需要简化并统一一个很大的接口或一群复杂的接口时,用外观。

(3)适配器改变接口以符合客户的期望。

(4)外观将客户从一个复杂的子系统中解耦。

(5)实现一个适配器的困难度与目标的接口大小和复杂度相关。

(6)实现一个外观,需要将子系统组合进外观中,然后将工作委托给子系统执行。

(7)适配器分两种:对象适配器、类适配器。类适配器需要用到多重继承。

(8)可以为一个子系统实现一个以上的外观。

(9)适配器将一个对象包装起来以改变其接口;装饰着将一个对象包装起来以增加新的行为和责任;外观将一群对象“包装”起来以简化其接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值