外观模式(Facade)

来源:互联网 发布:php 16进制转字符串 编辑:程序博客网 时间:2024/06/07 03:11

为子系统提供一个公共的对外接口

子系统A:

public class MethodA {    private String id;    public MethodA(String id){        this.id = id;    }    public void Method1(){        System.out.println("策略A");    }}

子系统B:

public class MethodB {    private String id;    public MethodB(String id){        this.id = id;    }    public void Method2(){        System.out.println("策略B");    }}

子系统C:

public class MethodC {    private String id;    public MethodC(String id){        this.id = id;    }    public void Method3(){        System.out.println("策略C");    }}

外观类:

public class facade {    MethodA methoda;    MethodB methodb;    MethodC methodc;    public facade(){        methoda = new MethodA("A");        methodb = new MethodB("B");        methodc = new MethodC("c");    }    public void Method1(){        System.out.println("第一种方法中采用子系统A、B、C中的方法:");        methoda.Method1();        methodb.Method2();        methodc.Method3();    }    public void Method2(){        System.out.println("第二种方法中采用了A、C中的方法:");        methoda.Method1();        methodc.Method3();    }}

客户端调用:

facade fa = new facade();        fa.Method1();        fa.Method2();

用外观模式的优点:
(1)实现了子系统与客户端之间的松耦合关系。
(2)客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。

0 0
原创粉丝点击