设计模式(6)-结构型-适配器模式(Adapter)(个人笔记)
来源:互联网 发布:能下载在线视频的软件 编辑:程序博客网 时间:2024/04/30 07:34
概述
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适用性
1.你想使用一个已经存在的类,而它的接口不符合你的需求。 2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口 可能不一定兼容的类)协同工作。 3.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行 子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
参与者
1.Target 定义Client使用的与特定领域相关的接口。 2.Client 与符合Target接口的对象协同。 3.Adaptee 定义一个已经存在的接口,这个接口需要适配。 4.Adapter 对Adaptee的接口与Target接口进行适配
示例:
结果:package com.sql9.structured;
// Targetinterface Target{ void newCall(String abc);}
// Adaptee classclass Adaptee{ public void sampleOpertion(String abc) { System.out.println("called for sampleOperation: " + abc); }}
// Adapterclass Adapter implements Target{ Adaptee _a; public Adapter(Adaptee a) { _a = a; System.out.println("This is light adapter for object construction."); } public void newCall(String abc) { _a.sampleOpertion(abc); }}
// class Adapterclass HeavyAdapter extends Adaptee implements Target{ public HeavyAdapter() { System.out.println("this is heavy adapter for class extend."); } public void newCall(String abc) { super.sampleOpertion(abc); }}
public class AdapterTest{
/** * @param args */ public static void main(String[] args) { Target t = new Adapter(new Adaptee()); t.newCall("新方法"); t = new HeavyAdapter(); t.newCall("新方法"); }
}
This is light adapter for object construction.called for sampleOperation: 新方法this is heavy adapter for class extend.called for sampleOperation: 新方法
总结:
可以对象适配,也可以类适配,按照需要进行选择。
- 设计模式(6)-结构型-适配器模式(Adapter)(个人笔记)
- 设计模式笔记--结构型模式之一适配器 adapter
- 设计模式(6) 结构型模式和适配器模式(ADAPTER)
- 结构型设计模式---适配器模式(adapter)
- JAVA设计模式(6) —<结构型>适配器模式(Adapter)
- [设计模式-结构型]适配器(Adapter)
- [设计模式笔记]二. 结构型模式--7.Adapter模式(适配器模式)(一)
- [设计模式笔记]二. 结构型模式--7.Adapter模式(适配器模式)(二)
- Adapter适配器(结构型模式)笔记
- 结构型设计模式---Adapter模式(适配器模式)
- 设计模式 一 适配器模式 Adapter(结构型模式)
- 设计模式深入学习---Adapter 适配器模式(结构型模式)
- 【设计模式学习笔记七】【结构型模式】【适配器模式(Adapter)】
- 设计模式(五)适配器模式Adapter(结构型)
- 设计模式纵谈--7.Adapter适配器(结构型模式)
- 设计模式(五)适配器模式Adapter(结构型)
- 设计模式(五)适配器模式Adapter(结构型)
- 【设计模式基础】结构型模式 - 1 - 适配器(Adapter)
- android-tabhost-bottom-layout
- epoll_create epoll_ctl epoll_wait close epoll和select的简单比较
- c语言关键字之 extern
- Tomcat6.X 配置Struts2 报错 “严重: Exception starting filter struts2”
- JS操作cookie详解
- 设计模式(6)-结构型-适配器模式(Adapter)(个人笔记)
- 修改支持设备
- Debug Android and Linux suspend and resume (中文)
- oracle执行计划hash join anti
- zend studio 8 注册码
- 写于当下
- [forward]Android完全退出应用程序
- javascript 中cookie的存储,获取cookie,删除cookie的方法。
- 窥探 kernel,just for fun --- 系统调用在用户空间的访问