适配器模式(Adapter Pattern)、外观模式(Facade Pattern)
2013-07-05 16:50
423 查看
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类合作无间。
本质很简单,用适配器类实现目标接口,然后在实现中用委托调用被适配者的子类的方法去实现目标接口的方法
代码:
设计原理7:最少知识原则:只和你的密友谈话
如何理解:不要让太多的类耦合在一起,免得修改时候影响太多类
如何遵守:只调用在下面范围内的方法:
1、该对象本身
2、被当做方法的参数而传递进来的对象
3、此方法所创建或实例化的任何对象
4、对象的任何组件(has-a关系)
外观模式:提供了一个统一的接口,用于访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用
本质也十分简单,其实就是在多个类的上面再加一层,并封装它们的若干个方法到新类的一个方法里,这样做的目的只是为了让接口看去更简单,方便调用
比较装饰者、适配器、外观:
装饰者:不改变接口,但是加入责任(新方法也可以加入)
适配器:将一个接口转成另一个接口
外观:让接口更简单
本质很简单,用适配器类实现目标接口,然后在实现中用委托调用被适配者的子类的方法去实现目标接口的方法
代码:
public interface Target { public void request(); }
public interface Adaptee { public void specificRequest(); }
public class Adapter implements Target { private Adaptee adaptee; @Override public void request() { adaptee.specificRequest(); } }
设计原理7:最少知识原则:只和你的密友谈话
如何理解:不要让太多的类耦合在一起,免得修改时候影响太多类
如何遵守:只调用在下面范围内的方法:
1、该对象本身
2、被当做方法的参数而传递进来的对象
3、此方法所创建或实例化的任何对象
4、对象的任何组件(has-a关系)
外观模式:提供了一个统一的接口,用于访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用
本质也十分简单,其实就是在多个类的上面再加一层,并封装它们的若干个方法到新类的一个方法里,这样做的目的只是为了让接口看去更简单,方便调用
比较装饰者、适配器、外观:
装饰者:不改变接口,但是加入责任(新方法也可以加入)
适配器:将一个接口转成另一个接口
外观:让接口更简单
相关文章推荐
- 设计模式心得:适配器模式(adapter pattern)和外观模式(facade pattern)
- 设计模式(七)The Adapter and Facade Pattern 适配器模式与外观模式
- 设计模式学习--适配器模式(Adapter Pattern)+外观模式(Facade Pattern)
- 结构型模式之适配器模式(Adapter Pattern)与外观模式(Facade Pattern)
- 适配器模式(Adapter)和外观模式(Facade)
- 适配器模式(Adapter)和外观模式(Facade)
- 适配器模式(Adapter)和外观模式(Facade)
- 适配器模式Adapter、外观模式Facade-- 学习HeadFirst设计模式记录
- 适配器模式(Adapter)和外观模式(Facade)
- 设计模式总结之Facade Pattern(外观模式)
- 外观模式(Facade Pattern) - 最易懂的设计模式解析
- 【JAVA设计模式】外观模式(Facade Pattern)
- 设计模式学习笔记十一:适配器模式(Adapter Pattern)
- 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)
- 设计模式学习总结-外观模式(Facade Pattern)
- .NET设计模式(8):适配器模式(Adapter Pattern)
- 我所理解的设计模式(C++实现)——外观模式(Facade Pattern)
- Head First设计模式C++实现--第七章:适配器(Adapter)与外观(Facade)模式
- 设计模式——适配器模式(Adapter Pattern)
- 设计模式学习笔记十一:适配器模式(Adapter Pattern)