外观模式

来源:互联网 发布:出色的有声小说 知乎 编辑:程序博客网 时间:2024/06/04 21:16

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

在讲外观模式前,我们引入两个设计模式中的两个重要原则:依赖倒转原则迪米特法则

依赖倒转原则:抽象不依赖细节,细节要依赖抽象。简单讲,就是面向接口编程,而不面向实现编程

迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中的一个类需要调用另一个类,则由第三方转发这个调用。

外观模式完美的体现了依赖倒转原则迪米特法则

我们用经理人购买股票基金来进行说明,普通客户是不懂得投资股票和基金的,但是我们可以交给经理人,这样,我们直接面向经理人,不用了解细节。

外观模式结构图如下:


代码如下

class Fund1{public void Method1(){System.out.println("第一种基金");}}class Fund2{public void Method2(){System.out.println("第一种基金");}}class Stock1{public void Method3(){System.out.println("第一种股票");}}class Stock2{public void Method4(){System.out.println("第二种股票");}}/* * 外观类 * 与客户(端)直接作用 */class  Manager{private Fund1 fund1;private Fund2 fund2;private Stock1 stock1;private Stock2 stock2;public Manager(){ fund1 = new Fund1(); fund2 = new Fund2(); stock1 = new Stock1(); stock2 = new Stock2();}public void MethodA(){stock1.Method3();stock2.Method4();}public void MethodB(){fund1.Method1();fund2.Method2();stock2.Method4();}}public class  Client{public static void main(String[] args) {// TODO Auto-generated method stubManager manager = new Manager();System.out.println("经理人为小红购买的基金和股票:");manager.MethodA();System.out.println("经理人为小强购买的基金和股票:");manager.MethodB();}}
运行结果:
经理人为小红购买的基金和股票:
第一种股票
第二种股票
经理人为小强购买的基金和股票:
第一种基金
第一种基金
第二种股票

1 0
原创粉丝点击