设计模式之适配器模式
来源:互联网 发布:淘宝c店 编辑:程序博客网 时间:2024/06/01 09:46
2.1、适配器模式
(1)定义:将一个类的接口转换成客户所希望的接口,这样可以使得因接口不兼容而不能一起工作的类可以一起工作。
(2)适用性:使用一个已经存在的类或者类库但是接口不符合需求。
(3)参与者:
Adaptee:已经存在的接口或者类,需要进行适配。
Adapter:适配后的类。
Target:需要适配的目标接口。
(4)uml图
(5)代码
目标接口Target:
public interface Target {// 目标接口
void adaptee();
void adapter();
}
需要被适配的接口或类Adaptee
public class Adaptee {// 要转换的接口或者类
public void adaptee() {
System.out.println("adaptee的方法!");
}
}
适配后的类:
public class Adapter implements Target {// 目标接口的具体类
private Adaptee adaptee = null;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void adapter() {
System.out.println("adapter的方法!");
}
@Override
public void adaptee() {
adaptee.adaptee();
}
}
测试类:
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target adapter = new Adapter(adaptee);
adapter.adaptee();
adapter.adapter();
}
(1)定义:将一个类的接口转换成客户所希望的接口,这样可以使得因接口不兼容而不能一起工作的类可以一起工作。
(2)适用性:使用一个已经存在的类或者类库但是接口不符合需求。
(3)参与者:
Adaptee:已经存在的接口或者类,需要进行适配。
Adapter:适配后的类。
Target:需要适配的目标接口。
(4)uml图
(5)代码
目标接口Target:
public interface Target {// 目标接口
void adaptee();
void adapter();
}
需要被适配的接口或类Adaptee
public class Adaptee {// 要转换的接口或者类
public void adaptee() {
System.out.println("adaptee的方法!");
}
}
适配后的类:
public class Adapter implements Target {// 目标接口的具体类
private Adaptee adaptee = null;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void adapter() {
System.out.println("adapter的方法!");
}
@Override
public void adaptee() {
adaptee.adaptee();
}
}
测试类:
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target adapter = new Adapter(adaptee);
adapter.adaptee();
adapter.adapter();
}
}
(6)实际应用 0 0
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式 之 适配器
- 设计模式 之 适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式 之 适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之--适配器模式.
- 剑指offerr--二叉搜索树的第k个结点
- php 消息推送(含源码)
- The Boy Scout Rule
- matlab中常用函数
- C++函数(一)
- 设计模式之适配器模式
- PyQt4 - (2) 第一印象 (pyqt的入门)
- noj算法题——堡垒问题
- 【好程序员笔记分享】——归档
- ArcGIS和Hadoop之间的故事之一
- (4.4.1.2)android内存管理机制(一)
- 谁比较2
- 关于Microsoft Visual Studio 2010 使用 APP GAME KIT中遇到的问题
- tomcatweb项目的默认首页(index.html)修改及关于war包生成.