设计模式之适配器模式与外观模式
2017-03-15 10:41
246 查看
适配器模式
适配器模式就是将一个接口转化成另一个接口。一个常见的例子是插头转换器
我们知道英式插头长这样:
package com.wenr.chapter7; public class FacadeTest { public static void main(String[] args) { A a = new A(); B b = new B(); C c = new C(); Facade facade = new Facade(a, b, c); facade.ABC1(); System.out.println(); facade.ABC2(); } } class A { public void a1() { System.out.println("a1"); } public void a2() { System.out.println("a2"); } } class B { public void b1() { System.out.println("b1"); } public void b2() { System.out.println("b2"); } } class C { public void c1() { System.out.println("c1"); } public void c2() { System.out.println("c2"); } } class Facade { A a; B b; C c; public Facade(A a, B b, C c) { this.a = a; this.b = b; this.c = c; } public void ABC1() { a.a1(); b.b1(); c.c1(); } public void ABC2() { a.a2(); b.b2(); c.c2(); } }
View Code
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
类图:
设计原则:最少知识原则(又称作墨忒耳法则,Law of Demeter)
只和你的密友交谈。
这个原则希望我们在设计中,不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。
怎么才能避免这样?这个原则提供了一些方针:就任何对象而言,在该对象的方法内,我们只应调用属于以下范围的方法:
该对象本身
被当做方法的参数而传递进来的对象
此方法所创建或实例化的任何对象
对象的任何组件
举个栗子:
不使用这个原则:
public float getTemp() { Thermometer thermometer = station.getThermometer(); return thermometer.getTemperature(); }
使用这个原则:
public float getTemp() { return station.getTemperature(); }
应用此原则时,在气象站中加一个方法,用来向温度计请求温度。这可以减少我们所依赖的类的数目。
综上:
当需要使用一个现有的类而其接口并不符合你的需求时,就使用适配器。
当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观。
相关文章推荐
- HeadFirst 设计模式学习笔记7--适配器模式和外观模式
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式学习--适配器模式(Adapter Pattern)+外观模式(Facade Pattern)
- 设计模式--适配器模式与外观模式
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式之适配器模式和外观模式adapter and facade
- Java经典23种设计模式之结构型模式(三)------附代理模式、适配器模式、外观模式区别
- 设计模式-适配器模式和外观模式
- 设计模式心得:适配器模式(adapter pattern)和外观模式(facade pattern)
- head first 设计模式学习随笔(7)----适配器模式和外观模式
- HeadFirst 设计模式学习笔记6--适配器模式和外观模式
- 设计模式 - 适配器模式、外观模式
- 结合项目实例 回顾传统设计模式(七)适配器模式(附外观模式)
- 代理模式、装饰模式、适配器模式、组合模式、桥梁模式、外观模式、享元模式【读书笔记】设计模式4章:结构型模式
- 结合项目实例 回顾传统设计模式(七)适配器模式(附外观模式)
- 【设计模式】1. 适配器模式、外观模式
- 初学设计模式(6)-----适配器模式,外观模式
- 设计模式之适配器模式、外观模式浅析
- 设计模式之适配器模式、外观模式浅析
- HeadFirst 设计模式学习笔记7--适配器模式和外观模式