设计模式学习笔记之适配器模式
2016-10-10 00:14
260 查看
<span style="font-size:18px;">/** * 目标(Target) * @author zhenyonghe *eg.用户已有一个两相的插座,但最近用户又有了一个新的三相插座。用户现在 *已经有一台洗衣机和一台电视机,洗衣机按着三相插座的标准配有三相插头, *而电视机按着两相插座的标准配有两相插头。现在用户想用新的三相插座来使 *用洗衣机和电视机(即使用适配器模式使得两个实例都可以使用三相插排) */ public interface ThreeElectricOutlet { public void connectElectricCurrent(); } </span>
/** * 被适配者(Adaptee) * @author zhenyonghe * */ public interface TwoElectricOutlet { public void connectElectricCurrent(); }
/** * 适配器(Adapter) * @author zhenyonghe *适配器模式(包装器):将一个类的接口转换成客户希望的另外一个接口。 *Adapter模式使得原本由于不兼容二不能一起工作的那些类可以一起工作。 * *这个适配器实现了目标接口并包含有被适配者的引用。 */ public class ThreeElectricAdapter implements ThreeElectricOutlet{ private TwoElectricOutlet outlet; public ThreeElectricAdapter(TwoElectricOutlet outlet) { this.outlet=outlet; } @Override public void connectElectricCurrent() { outlet.connectElectricCurrent(); } }
public class AdapterApp { public static void main(String[] args) { ThreeElectricOutlet outlet; Wash wash=new Wash(); outlet=wash; System.out.println("使用三相插座接通电流:"); outlet.connectElectricCurrent(); TV tv=new TV(); //适配 ThreeElectricAdapter adapter=new ThreeElectricAdapter(tv); outlet=adapter; System.out.println("使用三相插座接通电流:"); outlet.connectElectricCurrent(); } } //使用三相插座的洗衣机 class Wash implements ThreeElectricOutlet{ private String name; public Wash() { name="黄河洗衣机"; } public Wash(String s){ name=s; } @Override public void connectElectricCurrent() { turnOn(); } public void turnOn(){ System.out.println(name+"开始洗衣物。"); } } //使用两相插座的电视机 class TV implements TwoElectricOutlet{ private String name; public TV(){ name="长江电视机"; } public TV(String s){ name=s; } @Override public void connectElectricCurrent() { turnOn(); } public void turnOn(){ System.out.println(name+"开始播放节目。"); } } /* • 目标(Target)和被适配者(Adaptee)是完全解耦的关系。通过适配器联系,实现目标接口,包含被适配者实例引用。 • 适配器模式满足“开-闭原则”。当添加一个实现Adaptee接口的新类时,不必修改Adapter, Adapter就能对这个新类的实例进行适配 */
相关文章推荐
- 【设计模式学习笔记七】【结构型模式】【适配器模式(Adapter)】
- 设计模式学习笔记十一:适配器模式(Adapter Pattern)
- 设计模式学习笔记-适配器模式
- 设计模式学习笔记之适配器模式
- java 设计模式学习笔记(13) - 适配器模式
- 设计模式学习笔记十四:适配器模式
- 学习设计模式笔记--适配器模式
- HeadFirst 设计模式学习笔记7--适配器模式和外观模式
- 设计模式学习笔记十四:适配器模式
- Head First 设计模式学习笔记 —— 适配器模式
- 设计模式之禅学习笔记--适配器模式
- 设计模式学习笔记--适配器模式
- 设计模式学习笔记之-适配器模式
- 设计模式--学习笔记--适配器模式Adapter--基础篇
- 设计模式:适配器模式(学习笔记)
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式学习笔记-适配器模式
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)
- PHP设计模式——适配器模式(研磨设计模式学习笔记)