外观模式(Facade Pattern)

mango公司最新研发了一块app刚刚发布就受到了用户的青睐,用户也提出许多反馈,产品经理根据用户反馈最多的问题来提出迭代一个版本:用户反馈咱们的app主题单一,为了广大用户的需求,需要对app的主题进行扩充。开发小组进行讨论,如果我们添加不同的主题,每个页面就得新增不同的主题页面这样太浪费时间并且工作量巨大。改变主题主要是改变页面的样式,我们只需要多做几套样式,根据用户的切换或者配置给予相应的主题,这样成功解决了这个问题。

我们在设计的时候只需要给主页添加一个专门管理主题的ai,用户只要把想切换的主题告诉ai,剩下的事情全部交给这个ai去切换,用户不需要知道主题库内部的复杂结构的实现,在外观模式中,这个ai就是我们常说的外观类,外观类就是把客户和子系统内部复杂的结构实现分隔开,使得用户只需要去操作外观类,而不需要操作每个子系统的内部对象打交道

外观模式(Facede Pattern):为子系统中的一组接口提供一个统一的入口,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

外观模式的结构

Facede(外观角色):接收客户端的请求传递给子系统角色,客户端无需关心子系统如何实现

public class Facede
{
    public SubSystenA subSystenA = new SubSystenA();
    public SubSystenB subSystenB = new SubSystenB();

    public void GetFacede()
    {
        subSystenA.MethodA();
        subSystenB.MethodB();
    }
}

SubSystem(子系统角色):接收外观角色传递客户的请求,实现各个部分的功能块,每个子系统都是相对独立的实现类。

public class SubSystenA
{
    public void MethodA()
    {
        Console.WriteLine("这是子系统A逻辑");
    }
}

public class SubSystenB
{
    public void MethodB()
    {
        Console.WriteLine("这是子系统B逻辑");
    }
}

猜你喜欢

转载自blog.csdn.net/mango_love/article/details/94283115
今日推荐