适配器 and 组合模式——结构性模式之一

    适配器模式

 

一、适配器模式

讲一个类的接口装换成客户希望的另外一个接口适配器模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。

 

用于解决什么问题?

系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况下。

简单的说:我们需要的东西就在面前,可是就是不能使用,又不可以改造他,那么我们就使用适配器模式。

现实生活总的适配器模式很多:电源适配器,只要有电,不管多少伏,使用电源适配器都可以把它变成需要的电压;翻译员,A国家的人听不懂B 国家的人的语言,通过一个翻译,就可以明白。这些都是适配器的工作。

 

二、类图

 

 

 

三、注意

Adapter Target是继承关系。

 

Adapter Request 方法中调用AdapteeSpecificRequest方法来实现翻译的目的。

 

我们在客户端只需要实例化一个Target类型的翻译即可调用Adaptee类。

 

 

组合模式

 

一、组合模式

将对象组合成树形结构以表示“部分——整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

 

组合模式适用范围:树形结构“部分——整体”的关系中。

 

二、类图

 

上图中:Component 表示的不是整体,整体也好,部分也罢,Component表示的是他们共有的操作,定义成接口,所以从Component Composite 是聚合关系。

 

不同看法:

也正因为这样,所以我觉得Client 应该和Composite 有联系,而不是Component 毕竟Composite 中定义的才是具体的物件,在Component中是一些操作。

我的理解是下面这幅图:

 

 

 

可以这么理解吗?

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值