设计模式总结之外观模式(Facade Pattern)

  • A+
所属分类:设计模式

外观模式可以说是设计模式中很简单的一个模式了,当你有一个很复杂的系统,完成一个动作时需要调用多个接口时,就可以新定义一个接口,在这个接口里调用多个接口,这样一来对外就只用调用一个接口,而不是对外让别人调用多个接口。

我想就算没学习这个模式,在实际中我们自己也会这样做。这个模式的优点可不只是简化接口这么简单。它能将客户从一个复杂的子系统中解耦。

说到外观模式,这里要提到一个原则----“最少知识原则”(Least Knowledge),这个原则告诉我们,要减少对象之间的交互,只留下几个密友。不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。

一个简单的例子

Public float getTemp() {
// 获取温度计
Thermometer thermometer = station.getThermometer();
// 获取温度
return thermometer.getTemperature();
}

 

上面这段代码没有遵循最少知识原则。这里调用了另一个调用中(getThermometer)返回对象(thermometer)的方法(getTemperature)。应该在station类里加上获取温度方法。修改后如下

Public float getTemp() {
// 获取温度
return station.getTemperature();
}

 

这样一来这个方法里依赖的对象只有station。

ZPY

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: