适配器模式
Created|Updated
|Post View:
适配器模式✅
适配器模式常常被用在两个接口之间的转换上,这样就可以使得原本由于接口不兼容而不能一起工作的类可以一起工作。
适配器模式(Adapter)包含以下主要角色:
目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。
适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成
目标接口,让客户按目标接口的格式访问适配者。
一、实验要求
使用适配器模式实现家电通用案例。电视机使用两相插头,洗衣机使用三相插头。
现用新的三孔插座来使用电视机和洗衣机
二、代码✅
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| TwoElectricOutlet.java public interface TwoElectricOutlet{ public abstract void connectElectricCurrent(); }
ThreeElectricOutlet.java public interface ThreeElectricOutlet{ public abstract void connectElectricCurrent(); }
TreeElectricAdapter.java public class TreeElectricAdapter implements ThreeElectricOutlet{ TwoElectricOutlet outlet; public TreeElectricAdapter(TwoElectricOutlet outlet){ this.outlet=outlet; } @Override public void connectElectricCurrent(){ outlet.connectElectricCurrent(); } }
Application.java public class Application{ public static void main(String args[]){ ThreeElectricOutlet outlet; Wash wash=new Wash(); outlet=wash; System.out.println("使用三相插座接通电流:"); outlet.connectElectricCurrent(); TV tv=new TV(); TreeElectricAdapter adapter=new TreeElectricAdapter(tv); outlet=adapter; System.out.println("使用三相插座接通电流:"); outlet.connectElectricCurrent(); } }
class Wash implements ThreeElectricOutlet{ String name; Wash(){ name="黄河洗衣机"; } Wash(String s){ name=s; } public void connectElectricCurrent(){ turnOn(); } public void turnOn(){ System.out.println(name+"开始洗衣物。"); } }
class TV implements TwoElectricOutlet{ String name; TV(){ name="长江电视机"; } TV(String s){ name=s; } public void connectElectricCurrent(){ turnOn(); } public void turnOn(){ System.out.println(name+"开始播放节目。"); } }
|
类图

代码结果

总结
这些都是基础的,不会的多多看前面文章.