结构类模式(一):适配器(Adapter)
2016-10-27 13:51
330 查看
定义
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。类适配器模式
使用继承的方式实现没有提供的接口从而达到适配到新系统的需求。对象适配器模式
使用聚合的方式提供新系统需要的所有接口。UML
public class Main { public static void main(String[] args) { //类适配器模式使用 IMSEmployeeInfo info = new MSEmployeeInfo1(); System.out.println(info.nickname()); //对象适配器模式使用 IEmployeeInfo info2 = new EmployeeInfo(); IMSEmployeeInfo info3 = new MSEmployeeInfo2(info2); System.out.println(info3.nickname()); } /** * 员工信息接口 */ public static interface IEmployeeInfo { /** * 工号 */ int id(); /** * 姓名 */ String name(); } /** * 员工信息类 */ public static class EmployeeInfo implements IEmployeeInfo { @Override public int id() { return 250; } @Override public String name() { return "李二狗"; } } /** * 需要接入的MS公司员工信息接口 */ public static interface IMSEmployeeInfo { /** * 工号 */ int id(); /** * MS公司不使用人物的真名, 而是给员工取了一个英文名 */ String nickname(); } /** * 类适配器模式的实现 */ public static class MSEmployeeInfo1 extends EmployeeInfo implements IMSEmployeeInfo { @Override public String nickname() { //这里通过查询得到了李二狗的英文名并返回 return "尼古拉斯"; } } /** * 对象适配器模式的实现 */ public static class MSEmployeeInfo2 implements IMSEmployeeInfo { private IEmployeeInfo _info; public MSEmployeeInfo2(IEmployeeInfo info) { _info = info; } @Override public int id() { return _info.id(); } @Override public String nickname() { //这里通过查询得到了李二狗的英文名并返回 return "尼古拉斯"; } } }
View Code
相关文章推荐
- 设计模式之类对象结构型 — ADAPTER (适配器)模式
- 结构模式之Adapter(适配器)
- 七、适配器(Adapter)模式--结构模式(Structural Pattern)
- 结构模式(Structural Pattern)==适配器(Adapter)模式
- 七、结构模式之-适配器(Adapter)模式
- 适配器(Adapter)模式的Java实现[00原创]
- 设计模式之Adapter(适配器)
- 《Java与模式》学习笔记之四——适配器(Adapter)模式
- ADAPTER(适配器)模式
- 设计模式-----Adapter(适配器)模式
- Java设计模式:Adapter(适配器)
- 设计模式之Adapter适配器设计模式
- JAVA设计模式系列之Adapter(适配器)-Java基础-Java-编程开发
- 设计模式学习之---Adapter(适配器)模式
- 设计模式笔记--结构型模式之一适配器 adapter
- 《Java与模式》学习笔记:设计模式——适配器(Adapter)模式
- 设计模式之Adapter(适配器)
- 结构型模式-适配器 Structural Patterns- Adapter
- 设计模式之Adapter模式(适配器)
- 设计模式之Adapter(适配器)