设计模式之外观模式

设计模式之外观模式

外观模式自我感觉很常见,用途也会很广泛

外观模式的用途

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

UML

代码实现

首先定义四个子系统类

package facade;

public class SubSystemOne {
    public void methodOne() {
        System.out.println("子系统方法一");
    }
}
package facade;

public class SubSystemTwo {
    public void methodTwo() {
        System.out.println("子系统方法二");
    }
}
package facade;

public class SubSystemThree {
    public void methodThree() {
        System.out.println("子系统方法三");
    }
}
package facade;

public class SubSystemFour {
    public void methodFour() {
        System.out.println("子系统方法四");
    }
}

接着重点来了,定义外观类

package facade;

public class Facade {
    SubSystemOne subSystemOne;
    SubSystemTwo subSystemTwo;
    SubSystemThree subSystemThree;
    SubSystemFour subSystemFour;
    public Facade() {
        // TODO Auto-generated constructor stub
        subSystemOne=new SubSystemOne();
        subSystemTwo =new SubSystemTwo();
        subSystemThree =new SubSystemThree();
        subSystemFour =new SubSystemFour();
    }
    public void MethodA() {
        System.out.println("method A ");
        subSystemOne.methodOne();
        subSystemTwo.methodTwo();
    }
    public void MethodB() {
        System.out.println("method B ");
        subSystemThree.methodThree();
        subSystemFour.methodFour();
    }
}

最后建立实现类

package facade;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Facade facade =new Facade();
        facade.MethodA();
        facade.MethodB();
    }

}

书中此图我觉得非常好地解释了外观模式的用途以及用法

 

外观模式对代码重构具有很大的作用。它可以为一个复杂子系统提供一个简单接口,大大降低了耦合度。

 

初学《大话设计模式》

posted @ 2015-12-30 23:17  胖胖的半山兄  阅读(318)  评论(0编辑  收藏  举报