• 一种分层门面(FACADE)设计实现


    FACADE这种设计模式本身比较简单,核心思想就是外部系统同本系统的需要通过门面来进行通信,这样可以屏蔽业务细节,不管系统内部如何变化,怎么复杂,但是对外系统呈现一个简单的结构。

    对于软件模块采用消息通行机制的分布式系统,通常的架构设计为底层平台开放模块消息处理的注册接口,各个模块将自己的消息处理函数进行注册,我们可以把这个消息入口看成子系统的一个门面,所有的发往某个模块的消息都通过注册的消息处理函数来入口


    void ModuleMsgFun()

    {

         switch(sendModule)

         {

          case module1:

              TODO...

          ....

          case modulen:

              TODO...

         }

    }

    这个ModuleMsgFun门面是子系统和外界唯一的桥梁,简单的把不同的系统联系起来。但如果一个子系统比较庞大,那么它处理的消息可能也会很多,不同类型的消息聚集在一起,导致流程不够清晰,不易于代码的理解,维护和扩展。

    为了解决这些问题,我们可以考虑在系统内部再派生几个门面,不同的门面要针对业务强相关,比如系统主流程可以使用一个门面,这样我们可以很容易的通过不同的门面识别不同业务的核心流程,代码也易于理解和维护。

    void ModuleMsgFun()

    {

        ModuleMsgFacadem1();

        ....

        ModuleMsgFacademn();

    }

    设计虽然简单但对于后期的扩展和维护工作来说效果是十分明显的,它意味着我们不用在代码中每条消息的跟踪去跟踪一个主流程,我们只需要在主流程的门面中去看看就明白了来龙去脉。

    http://www.cnblogs.com/chencheng/archive/2012/06/19/2555406.html

  • 相关阅读:
    SqlServer:创建索引
    SqlServer:使用视图 View
    SqlServer:修改和删除数据
    网络管理:SNMPv1
    《剑指 Offer》学习记录:题 9:用两个栈实现队列
    《剑指 Offer》学习记录:题 27:二叉树的镜像
    团队冲刺9
    团队冲刺8
    团队冲刺7
    团队冲刺6
  • 原文地址:https://www.cnblogs.com/chencheng/p/2555406.html
Copyright © 2020-2023  润新知