首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

构造型设计模式-外观模式(Facade)

2012-09-11 
结构型设计模式--外观模式(Facade)??? 外观模式(Facade)???? 为子系统中的一组接口提供一个一致的界面,Fac

结构型设计模式--外观模式(Facade)

??? 外观模式(Facade)

?

??? 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。


??? 解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。


构造型设计模式-外观模式(Facade)

?

?

// 汽车引擎public class Engine {public String engineWork() {return "BMW's Engine is Working";}public String EngineStop() {return "BMW's Engine is stopped";}}// 汽车轮子public class Wheel {public String WheelCircumrotate() {return "BMW's Wheel is Circumrotating";}public String WheelStop() {return "BMW's Wheel is stoped";}}public class Body {public Wheel[] wheels = new Wheel[4];public Engine engine = new Engine();public Body() {for (int i = 0; i < wheels.length; i++) {wheels[i] = new Wheel();}}}public class CarFacade {Body body = new Body();public void Run() {body.engine.engineWork();for (int i = 0; i < body.wheels.length; i++) {body.wheels[i].WheelCircumrotate();}}public void Stop() {body.engine.EngineStop();for (int i = 0; i < body.wheels.length; i++) {body.wheels[i].WheelStop();}}}public class Test {public static void main(String[] args) {CarFacade car = new CarFacade();car.Run();car.Stop();}}

?

??? 外观模式完美地体现了依赖倒转原则和迪米特法则思想


??? 依赖倒转原则: 高层模块不应该依赖低层模块,两个都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象


??? 迪米特法则


????? ① 只与你直接的朋友们通信;
????? ② 不要跟“陌生人”说话;
????? ③ 每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。

?

热点排行