Java设计模式之外观模式

一、概述

1、定义
外观模式,一般用在子系统与访问之间,用于对访问屏蔽复杂的子系统调用,采用耳目一新的外观类提供的简单的调用方法,具体的实现由外观类去子系统调用。外观模式也叫门面模式。

2、角色
2-1、子系统角色:在软件系统中可以有一个或者多个子系统角色,每一个子系统可以不是一个单独的类,而是一个类的集合,它实现子系统的功能;每一个子系统都可以被客户端直接调用,或者被外观角色调用,它处理由外观类传过来的请求;子系统并不知道外观的存在,对于子系统而言,外观角色仅仅是另外一个客户端而已。
2-2、外观类:在客户端可以调用它的方法,在外观角色中可以知道相关的(一个或者多个)子系统的功能和责任;在正常情况下,它将所有从客户端发来的请求委派到相应的子系统去,传递给相应的子系统对象处理。

二、代码

子系统ABC及其方法

public class SubSystemA {  
    public void MethodA()  
    {  
        //业务实现代码  
    }  
}  
  
public class SubSystemB {  
    public void MethodB()  
    {  
        //业务实现代码  
     }  
}  
  
public class SubSystemC {  
    public void MethodC()  
    {  
        //业务实现代码  
    }  
}

外观类

public class Facade {  
    private SubSystemA obj1 = new SubSystemA();  
    private SubSystemB obj2 = new SubSystemB();  
    private SubSystemC obj3 = new SubSystemC();  
  
    public void Method() {  
        obj1.MethodA();  
        obj2.MethodB();  
        obj3.MethodC();  
    }  
}

测试类

public class Program {  
    static void Main(string[] args)  
    {  
        Facade facade = new Facade();  
        facade.Method();  

    }  
}

三、适用场景

1、当我们访问的子系统拥有复杂额结构,内部调用繁杂,初接触者根本无从下手时,可以为这个子系统设计一个外观类来供访问者使用,统一访问路径(集中到外观类中),将繁杂的调用结合起来形成一个总调用写到外观类中,之后访问者不用再繁杂的方法中寻找需要的方法进行调用,直接在外观类中找对应的方法进行调用即可。
2、在系统与系统之间发生调用时,也可以为被调用子系统设计外观类,这样方便调用,也屏蔽了系统的复杂性。

 

转载自:http://www.cnblogs.com/V1haoge/p/6484128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值