zoukankan      html  css  js  c++  java
  • 设计模式--门面模式C++实现

    门面模式C++实现

    1定义facade

    要求一个子系统的外部接口与其内部的通信必须通过一个统一的接口进行。门面模式提供一个高层次的接口,使得子系统更容易视同

    注:门面模式注重统一对象,也就是提供一个访问子系统的接口,除了这个接口不允许有任何访问子系统的行为产生

    2类图

    facade门面角色,是外界访问子系统内部的唯一通道

    subsystem子系统角色,可以同时是一个或者多个子系统,每个子系统不是单独的类而是一个类的集合

    3实现

    //子系统

    class classA

    {

    public:

      void doSomething()

      {

        //子系统业务逻辑

      }

    };

    class classB

    {

    public:

      void doSomething()

      {

        //子系统业务逻辑

      }

    };

    //门面对象

    class Facade

    {

    private:

      classA a;

      classB b;

    public:

      void doSomethingA()

      {

        a.doSomething();

      }

      void doSomethingB()
      {

        b.doSomething();

      }

    };

    4应用

    ①优点

    减少系统的相互依赖

    提高灵活性

    提高安全性

    ②缺点

    不符合开闭原则,对修改关闭,对扩展开放。因为系统内部的修改都需要变动门面

    ③使用场景

    为一个复杂的模块或者子系统提供一个外界访问的接口

    子系统相对独立--外接对子系统的访问只要黑箱操作即可

    预防低水平人员带来的风险扩散

    ④注意事项

    门面个数可以大于一的情况:

    门面庞大到不能忍受的程度

    子系统可以提供不同的访问路径

    注:门面不参与子系统内的逻辑业务---如果子系统内部逻辑需要改动后交给外接,那么久将之封装,然后交给门面而非让门面处理逻辑

  • 相关阅读:
    sitemap.xml生成方法(asp和php)(转)
    浏览器缓存机制(转)
    JavaScript在IE浏览器和Firefox浏览器中的差异总结(转)
    JavaScript的数组及其操作
    Google Maps和GIS开发资源收集
    js 字符串转换成数字(转)
    关于构造函数
    C#类型转化
    .net framework
    C#变量
  • 原文地址:https://www.cnblogs.com/lang5230/p/5335400.html
Copyright © 2011-2022 走看看