设计模式(7)-适配器模式(Adapter)
来源:互联网 发布:怎样查农村淘宝服务站 编辑:程序博客网 时间:2024/06/05 08:37
如果一种产品需要使用另一种产品,而又由于不匹配不能直接使用,就可以用一个适配器进行适配。
比如一个电脑的键盘圆口坏了,原来的键盘还想使用,就用一个圆口和USB的转接头,把原来的键盘接到USB口上。这就是一种适配。
网卡叫适配器也有这个意思,将网络数据和计算机数据进行相互转换。
如果一个类要使用另一个类,而要求的接口又不一样,就可以在两个类之间加个适配器。下面是jdbc调用odbc的例子模拟
ODBC调用oracle:ODBC
package org.bluebea.gof.adapter;
import java.util.List;
/**
* odbc对oracledriver的调用,也要用适配器。这为了简化操作,直接写。
*/
public class ODBC {
OracleDriver od = new OracleDriver();
public ODBC() {
}
private void createor() {
if (null == od) {
od = new OracleDriver();
}
}
public void odbc_save() {
this.createor();
od.oracle_save();
}
public OdbcList odbc_find() {
OdbcList olist = new OdbcList();
this.createor();
olist.setList(od.oracle_find());
return olist;
}
}
JDBC接口:JDBC
package org.bluebea.gof.adapter;
import java.util.List;
public interface JDBC {
public void save();
public List find();
}
适配器:JdbcOdbcAdapter
package org.bluebea.gof.adapter;
import java.util.List;
public class JdbcOdbcAdapter implements JDBC {
ODBC odbc = null;
public JdbcOdbcAdapter() {
this.createor();
}
private void createor() {
if (null == odbc) {
odbc = new ODBC();
}
}
public void save() {
odbc.odbc_save();
}
//这儿进行适配
public List find() {
return odbc.odbc_find().getList();
}
}
JDBC实现:JDBCDriver
package org.bluebea.gof.adapter;
import java.util.List;
public class JDBCDriver implements JDBC {
public JDBCDriver() {
}
public void save() {
JdbcOdbcAdapter joa = new JdbcOdbcAdapter();
joa.save();
}
public List find() {
JdbcOdbcAdapter joa = new JdbcOdbcAdapter();
return joa.find();
}
}
说明:因为ODBC返回的类型不符合JDBC接口的需要,所以加了个适配器来达到调用ODBC的目的。这只是个例子。实际情况要复杂多。
- 设计模式--适配器(Adapter)
- 适配器Adapter 设计模式
- 设计模式--Adapter(适配器)
- 设计模式 - 适配器(Adapter)
- 适配器设计模式-Adapter
- Adapter(适配器)设计模式
- Adapter-适配器设计模式
- 设计模式:adapter适配器
- 设计模式(7)-适配器模式(Adapter)
- 设计模式7--适配器模式(Adapter)
- 设计模式(7)-Adapter 适配器模式
- 设计模式--适配器模式(Adapter)
- 设计模式--适配器模式(Adapter)
- [设计模式]Adapter适配器模式
- 设计模式-适配器模式(adapter)
- 设计模式 -- Adapter 适配器模式
- 设计模式 - 适配器模式 Adapter
- 设计模式--适配器模式Adapter
- 设计模式(5)-外观模式(Facade)
- DateSet使用技巧
- 异步调用xml web service
- 设计模式(6)-代理模式(Proxy)
- 设计模式(9)-装饰模式(Decorator)
- 设计模式(7)-适配器模式(Adapter)
- 防SQL注入
- 设计模式(8)-组合模式(Composite)
- 设计模式(10)-桥接模式(Bridge)
- (转宝贝记).net 框架设计 签名系统三层架构
- linux配置-磁盘
- 设计模式(12)-模板方法模式(Template Method)
- 设计模式(11)-单例模式(Flyweight)
- .Net/C# 实现 中国移动 CMPP v3.0 ISMG SP 收发短信的 SP 客户端 (第2版) (CMPP SP Client)