设计模式-适配器模式
-
定义
将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。转换接口。 -
例子
/** * 需求场景: 有一场演讲,需要说英文,但是现在只会中文。通过适配器,转为会说英文的人 */ public class Speech { private English english; public Speech(English english) { this.english = english; } public void speech() { english.speaker(); } public static void main(String[] args) { // 将说中文的人包装为说英语的人 Speech speech = new Speech(new ChineseAdapter(new Chinese())); speech.speech(); } } /** * 客户需要的类 */ interface English { void speaker(); } /** * 被适配的类 */ class Chinese { public void foo() { System.out.println("我会说汉语"); } } /** * 汉语--英语适配器 */ class ChineseAdapter implements English { private Chinese chinese; public ChineseAdapter(Chinese chinese) { this.chinese = chinese; } /** * 实现接口,将汉语翻译为英语 */ @Override public void speaker() { translateEnglish(); } private void translateEnglish() { System.out.println("I can speak English"); } }