适配器与外观模式

栏目: 后端 · 发布时间: 6年前

内容简介:《Head First设计模式》笔记整理...欢迎交流...假设已有一个软件系统,你希望它能和一个新的厂商的类库搭配使用,但是这个心厂商设计出来的接口,不同于旧厂商的接口。解决这个问题,我们就可以使用适配器

《Head First设计模式》笔记整理...欢迎交流...

使用场景

假设已有一个软件系统,你希望它能和一个新的厂商的类库搭配使用,但是这个心厂商设计出来的接口,不同于旧厂商的接口。

解决这个问题,我们就可以使用适配器

适配器与外观模式

定义

将一个类的接口,转换成客户期待的另一个接口。适配器让原本接口不兼容的类可以合作无间。

类图

适配器与外观模式

外观模式定义

提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

这里注意一下外观模式与适配器模式的区别:外观模式定义的接口访问的是子系统的 一群 接口

适配器与外观模式

“最少知识”原则

也叫墨忒耳法原则。只和你的密友谈话

方针

就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围内的方法:

  • 该对象本身
  • 被当做方法参数而传递进来的对象
  • 此方法所创建或实例化的任何对象
  • 对象的任何组件
//没有采用这个原则
public float getTemp() {
    Thermometer thermometer = station.getTermometer(); //这里,我们从气象站取得温度计对象,再从温度计对象取得温度
    return thermometer.getTemperature();
}
//采用这个原则
public float getTemo() {
    return station.getTemperature();
}

以一个汽车类示例:

public class Car {
    Engine engine; //这是类的一个组件,我们可以调用它的方法
    //其它实例变量
    
    public Car() {}
    
    public void start(Key key) {
        Doors doors = new Doors(); //这里创建了一个新对象,它的方法可以被调用
        
        boolean authorized = key.turns(); //被当做参数传递进来的对子那个,其方法可以被调用
        
        if(authorized) {
            engine.start(); //可以调用对象组件的方法
            updateDashboardDisplay(); //可以调用对象内的本地方法
            doors.lock(); //可以地阿偶创建或实例化的对象的方法
        }
    }
}

“最少知识”原则和外观模式的关系

适配器与外观模式


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Data Mining

Web Data Mining

Bing Liu / Springer / 2011-6-26 / CAD 61.50

Web mining aims to discover useful information and knowledge from Web hyperlinks, page contents, and usage data. Although Web mining uses many conventional data mining techniques, it is not purely an ......一起来看看 《Web Data Mining》 这本书的介绍吧!

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具