设计模式--适配器模式
2010-03-15 16:11
218 查看
一。类继承方式public class SquarePeg{
public void insert(String str){
System.out.println("SquarePeg insert():"+str);
}}public class RoundPeg{
public void insertIntohole(String msg){
System.out.println("RoundPeg insertIntoHole():"+msg);
}
}现在有一个应用,需要既打方形桩,又打圆形桩.那么我们需要将这两个没有关系的类综合应用.假设RoundPeg我们没有源代码,或源代码我们不想修改,那么我们使用Adapter来实现这个应用:public class PegAdapter extends SquarePeg{
private RoundPeg roundPeg; public PegAdapter(RoundPeg peg)(this.roundPeg=peg;) public void insert(String str){super.insert(str); roundPeg.insertIntoHole(str);}}
二。接口方式:
下面是新的RoundPeg 和SquarePeg, 除了实现接口这一区别,和上面的没什么区别。
public class SquarePeg implements ISquarePeg{
public void insert(String str){
System.out.println("SquarePeg insert():"+str);
}}public class RoundPeg implements IRoundPeg{
public void insertIntohole(String msg){
System.out.println("RoundPeg insertIntoHole():"+msg);
}
}下面是新的PegAdapter,叫做two-way adapter:public class PegAdapter implements IRoundPeg,ISquarePeg{
private RoundPeg roundPeg;
private SquarePeg squarePeg;
// 构造方法
public PegAdapter(RoundPeg peg){this.roundPeg=peg;}
// 构造方法
public PegAdapter(SquarePeg peg)(this.squarePeg=peg;) public void insert(String str){ roundPeg.insertIntoHole(str);}}还有一种叫Pluggable Adapters,可以动态的获取几个adapters中一个。使用Reflection技术,可以动态的发现类中的Public方法。
public void insert(String str){
System.out.println("SquarePeg insert():"+str);
}}public class RoundPeg{
public void insertIntohole(String msg){
System.out.println("RoundPeg insertIntoHole():"+msg);
}
}现在有一个应用,需要既打方形桩,又打圆形桩.那么我们需要将这两个没有关系的类综合应用.假设RoundPeg我们没有源代码,或源代码我们不想修改,那么我们使用Adapter来实现这个应用:public class PegAdapter extends SquarePeg{
private RoundPeg roundPeg; public PegAdapter(RoundPeg peg)(this.roundPeg=peg;) public void insert(String str){super.insert(str); roundPeg.insertIntoHole(str);}}
二。接口方式:
下面是新的RoundPeg 和SquarePeg, 除了实现接口这一区别,和上面的没什么区别。
public class SquarePeg implements ISquarePeg{
public void insert(String str){
System.out.println("SquarePeg insert():"+str);
}}public class RoundPeg implements IRoundPeg{
public void insertIntohole(String msg){
System.out.println("RoundPeg insertIntoHole():"+msg);
}
}下面是新的PegAdapter,叫做two-way adapter:public class PegAdapter implements IRoundPeg,ISquarePeg{
private RoundPeg roundPeg;
private SquarePeg squarePeg;
// 构造方法
public PegAdapter(RoundPeg peg){this.roundPeg=peg;}
// 构造方法
public PegAdapter(SquarePeg peg)(this.squarePeg=peg;) public void insert(String str){ roundPeg.insertIntoHole(str);}}还有一种叫Pluggable Adapters,可以动态的获取几个adapters中一个。使用Reflection技术,可以动态的发现类中的Public方法。
相关文章推荐
- Java 设计模式(五)适配器模式
- 设计模式——适配器模式及jdk中的应用
- JDK与设计模式:适配器模式
- 设计模式之--适配器模式(adapter)
- 设计模式----适配器模式 实例
- Java设计模式之适配器模式
- Java设计模式学习05——适配器模式
- 设计模式C++实现(3)——适配器模式
- 设计模式笔记(7)---适配器模式(结构型)
- java设计模式学习笔记-适配器模式
- java设计模式【全】-适配器模式
- 设计模式之--适配器模式
- 【设计模式】适配器模式
- 201802151200->深入浅出设计模式:c#适配器模式
- Java设计模式系列之适配器模式
- 设计模式之适配器模式
- Objective-C 设计模式-适配器模式 (Adapter)
- 设计模式--适配器模式Adapter(结构型)
- 结合项目实例 回顾传统设计模式(七)适配器模式(附外观模式)
- Python设计模式(二)【适配器模式】