设计模式-适配器模式和外观模式
2014-09-04 13:46
288 查看
1.适配器模式
适配器模式是针对接口不一时处理的情况,比如我的类的参数是IInterface1,但是我现在想要调用IInterface2接口的函数,怎么办呢?就是用适配器来解决这个问题:
现在我们调用IIterface2的method1的方法的时候,就是可以直接构造一个适配器来完成
其中claimplementInterface2是实现Interface2的一个类的实例。这种适配器的方法被称作为对象适配器,还有一种适配器,叫做类适配器,是基于类的多继承的,其中适配器继承自要适配的两个类,用其中一个类的方法调用另一个类,思想是一致的,不过java不支持多继承,所以也就是只能用对象适配器。
2.外观模式
外观模式,其实就是对一个子系统的方法进行整理,对外公开一些方法,方便外部的调用,但是并不是对这些类的一个封装,只是提供了一个简单的接口,用户如果觉得没什么用出,可以直接调用子系统的方法,而且,一个子系统可以有很多个外观。所以外观模式的定义如下
比如我们用电脑,怎么开机,怎么关机呢:
这样就直接提供给用户开机和关机的操作了,而不用用户自己去调用开机关机的一系列的方法了。
3.设计原则
需要做到这个原则,建议只调用一下的范围的方法:
适配器模式是针对接口不一时处理的情况,比如我的类的参数是IInterface1,但是我现在想要调用IInterface2接口的函数,怎么办呢?就是用适配器来解决这个问题:
public interface IInterface1(){ public void method1(); } public interface IInterface2(){ public void method2(); } public class adapter implements IInterface1{ IInterface2 v; public adapter(IInterface2 t){ this.v=t; } public void method1(){ v.method2(); } }
现在我们调用IIterface2的method1的方法的时候,就是可以直接构造一个适配器来完成
public class A{ public void method3(IInterface1 t) { t.method1(); } public static void main(String[] arg) { (new A()).method3(new adapter(claimplementInterfce2)); } }
其中claimplementInterface2是实现Interface2的一个类的实例。这种适配器的方法被称作为对象适配器,还有一种适配器,叫做类适配器,是基于类的多继承的,其中适配器继承自要适配的两个类,用其中一个类的方法调用另一个类,思想是一致的,不过java不支持多继承,所以也就是只能用对象适配器。
适配器模式:将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间
2.外观模式
外观模式,其实就是对一个子系统的方法进行整理,对外公开一些方法,方便外部的调用,但是并不是对这些类的一个封装,只是提供了一个简单的接口,用户如果觉得没什么用出,可以直接调用子系统的方法,而且,一个子系统可以有很多个外观。所以外观模式的定义如下
外观模式:提供一个统一的接口,用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用。
比如我们用电脑,怎么开机,怎么关机呢:
public class UseComputer{ ZHUJI zhuji; XIANSHIQI xianshiqi; ... public UseComputer(ZHUJI zhuji,XIANSHIQI xianshiqi,....) { this.zhuji=zhuji; this.xianshiqi=xianshiqi; ..... } public void guanji() { zhuji.off(); xianshiqi.off(); } public void kaiji() { xianshiqi.on(); zhuji.on(); } }
这样就直接提供给用户开机和关机的操作了,而不用用户自己去调用开机关机的一系列的方法了。
3.设计原则
最少知识原则:只和你的密友谈话
需要做到这个原则,建议只调用一下的范围的方法:
对象本身 被当作方法的参数而传递进来的对象 此方法所创建或实例化的任何对象 对象的任何组组件
相关文章推荐
- HeadFirst 设计模式学习笔记7--适配器模式和外观模式
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式学习--适配器模式(Adapter Pattern)+外观模式(Facade Pattern)
- 设计模式心得:适配器模式(adapter pattern)和外观模式(facade pattern)
- 设计模式--适配器模式与外观模式
- 设计模式之适配器模式和外观模式adapter and facade
- Java经典23种设计模式之结构型模式(三)------附代理模式、适配器模式、外观模式区别
- php 设计模式之 代理模式,适配器模式,外观模式
- 设计模式——适配器模式和外观模式
- head first 设计模式学习随笔(7)----适配器模式和外观模式
- HeadFirst 设计模式学习笔记6--适配器模式和外观模式
- 设计模式 - 适配器模式、外观模式
- 结合项目实例 回顾传统设计模式(七)适配器模式(附外观模式)
- 代理模式、装饰模式、适配器模式、组合模式、桥梁模式、外观模式、享元模式【读书笔记】设计模式4章:结构型模式
- 结合项目实例 回顾传统设计模式(七)适配器模式(附外观模式)
- 【设计模式】1. 适配器模式、外观模式
- 初学设计模式(6)-----适配器模式,外观模式
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式之适配器模式、外观模式浅析
- HeadFirst 设计模式学习笔记7--适配器模式和外观模式