• 好好学习设计模式之一:外观模式


    外观模式,主要就是将系统中原本互相交接的一些功能通过一组简单的接口来进行处理,减少各个模块之间的交互性,降低耦合性能。这样的话,将使得维护非常的容易。

    那么,针对外观模式,一个具体的图例效果解释如下:

     

    上面的这个是在没有进行外观模式下的关系图,可以发现,类与类之间的耦合程度非常的高,并且稍显混乱。

    下面的这个是利用外观模式进行了分离的结果,可以看出,简洁多了,耦合程度也是大大降低。

     

    那么在具体的编码的时候,应该如何进行设计呢?其实,真正的设计应该是这样的,首先参看下面的具体流程图:

     

    具体的代码如下:

    首先是SubSystemOne.cs的具体源码:

    using System;



    namespace FacadeApplication

    {

    class SubSystemOne

    {

    public void MethodA()

    {

    Console.WriteLine(
    "这个是方法一!");

    }

    }

    }

    其次是SubSystemTwo.cs的具体源码:

    using System;



    namespace FacadeApplication

    {

    class SubSystemOne

    {

    public void MethodA()

    {

    Console.WriteLine(
    "这个是方法一!");

    }

    }

    }

    再者就是SubSystemThree.cs的具体源码:

    using System;



    namespace FacadeApplication

    {

    class SubSystemThree

    {

    public void MethodC()

    {

    Console.WriteLine(
    "我是方法C!呵呵~~~~");

    }

    }

    }

    然后关键就是Façade.cs类的具体实现了:

     

    namespace FacadeApplication

    {

    class Facade

    {

    SubSystemOne one;

    SubSystemTwo two;

    SubSystemThree three;



    public Facade()

    {

    one
    = new SubSystemOne();

    two
    = new SubSystemTwo();

    three
    = new SubSystemThree();

    }



    public void RunThis()

    {

    one.MethodA();

    two.MethodB();

    }



    public void RunThat()

    {

    two.MethodB();

    three.MethodC();

    }

    }

    }

    这样就实现了。

    说明一下在什么时候使用外观模式:

    首先,在设计初期阶段,应该有意识的将不同的层进行分离。

    其次,就是在开发阶段,利用外观模式将一些接口进行组合,以便减少之间的依赖性。

    最后,就是在维护系统的时候,精良使用façade模式完成新旧对象的交互。

  • 相关阅读:
    JS版Stopwatch计时器
    【学习笔记】——网络营销2(赢利)
    CMMI 3级精简并行过程综述
    【学习笔记】——网络营销1(基础概念)
    ASP.NET MVC路由匹配检测组件的代码分析
    学习笔记(一)
    【学习笔记】——网络营销3(市场策略)
    jQuery.API源码深入剖析以及应用实现(4) - 选择器篇(下)
    关于实现B/S与C/S平台之间功能通用性的设计思路
    【学习笔记】——网络营销6(搜索引擎优化)
  • 原文地址:https://www.cnblogs.com/scy251147/p/2060358.html
Copyright © 2020-2023  润新知