适配器就是将一个接口转化成另外一个接口,以符合客户的期望;
比如笔记本电源的适配器, 插座的适配器等;
使用适配器过程
- 客户通过目标接口调用适配器的方法对适配器发出请求;
- 适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口;
- 客户接收到调用的结果,并不知道 适配器 在起转换作用;
客户与被适配者对象是解耦的;
适配器模式: 将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类,照样可以被客户调用;
类图
Paste_Image.png- target: 为客户调用的目标接口,含有客户请求的抽象方法;
- Adapter: 适配器类,实现了目标接口,并持有 Adapters 类的引用;实际request()执行时,将 调用 adapters中的实际方法,完成完成;
- Adapters:为被适配者类,客户请求的真正完成,是在这里进行的;
- Client:客户类,客户类,只关心 Target接口,不知道具体实现,形成解耦;
使用对象组合,以修改的接口包装被适配者;
对比装饰模式
- 装饰是将新的行为或责任加入到设计中,不改变接口,但添加责任;
- 适配器只关注解耦,将客户请求进行转发,转化,不添加新的行为或责任;
网友评论