java外观模式

来源:互联网 发布:黑客摄像头监控软件 编辑:程序博客网 时间:2024/04/30 14:03

所谓外观模式就是要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行交互。外观模式提供一个高层次的接口使得子系统更易于使用。

    相关角色:

         1.外观(Facade)角色:客户端可以调用这个角色的方法。此角色知晓相关的子系统的功能和责任。

         2.子系统角色:可以同时有一个或者多个子系统。每一个子系统都不是一个单独的类,而是一个类的集合。每一个子系统都可以被客户端直接调用,或者被外观角色调用。

    适用情况:

         1.为复杂的子系统提供一个简单的接口;

         2.客户程序与抽象类的实现部分之间存在着很大的依赖性;

         3.构建一个层次结构的子系统时,适用外观模式定义子系统中每层的入口点。

    外观模式的简单实现:

                                                                         

例子:

接口:

public interface singer {void sing();}

子类一:

public class male implements singer {public male() {}@Overridepublic void sing() {System.out.println("唱歌,男音部分");}}
子类2:

public class female implements singer {public female() {}@Overridepublic void sing() {System.out.println("唱歌,女生部分");}}

外观角色类:

public class Facade {singer male = null;singer female = null;public Facade() {male = new male();female = new female();}public void sing() {male.sing();female.sing();}}

测试客户端:
public class TestFacade {public static void main(String[] agrs) {Facade f = new Facade();f.sing();}}

4.应用场景

1)为一个复杂子系统提供一个简单接口。

2)提高子系统的独立性。

3)在层次化结构中,可以使用Facade模式定义系统中每一层的入口。




0 0
原创粉丝点击