zoukankan      html  css  js  c++  java
  • 外观模式Facade

    外观模式:为子系统中的一组接口提供一致的界面,fa?ade提供了一高层接口,这个接口使得子系统更容易使用。 

    外观模式定义了一个更高层的接口,使子系统更加容易使用。Facade模式是为了降低子系统之间,客户端与实现化层之间的依赖性。当在构建一个层次化的系统时,也可以同过使用Facade模式定义系统中每一层的入口,从而简化层与层之间的依赖关系。

    package com.qinsoft.design;
    
    
    public class Facade
    {
        public static void main(String[] args)
        {
            //只需要DrawerFacade,不关心子系统之间的依赖关系
            DrawerFacade drawer = new DrawerFacade();  
            drawer.open();
        }
    }
    /**
     * 操作一
     */
    class DrawerOne {
    
        void open() 
        {
            System.out.println("第一个抽屉被打开了");
            getKey();
        }
    
        void getKey() 
        {
            System.out.println("得到第二个抽屉的钥匙");
        }
    }
    /**
     * 操作二
     */
    class DrawerTwo {
    
        void open() {
            System.out.println("第二个抽屉被打开了");
            getFile();
        }
        public void getFile() {
            System.out.println("得到这个重要文件");
        }
    
    }
    /**
     * Facade
     */
    class DrawerFacade {
        DrawerOne darwerOne=new DrawerOne();
        DrawerTwo darwerTwo=new DrawerTwo();
    
        public void open()
        {
           darwerOne.open();
           darwerTwo.open();
        }
    }


    Facade模式主要适用于以下几种情况:

    1) 不需要使用一个复杂系统的所有功能,而且可以创建一个新的类,包含访问系统的所有规则。如果只需要使用系统的部分功能,那么你为新类所创建的API将比原系统的API简单的多。

    2) 希望封装或者隐藏系统原系统。

    3) 希望使用原系统的功能,而且还希望增加一些新的功能。

    4) 编写新类的成本小于所有人学会使用或者未来维护原系统上所需的成本。

  • 相关阅读:
    HihoCoder
    中石油-高精度除法-java版
    01背包问题
    码农谷--将一个英文语句以单词为单位逆序排序/小码农挑选资源的方案数--未提交
    高精度乘法
    中石油—2的幂次方(power)
    中石油-【高精度】简单高精度加法
    中石油-【高精度】被限制的加法
    中石油【递归】分形 已提交
    中石油 【递归】普通递归关系
  • 原文地址:https://www.cnblogs.com/hnhcc39/p/2866128.html
Copyright © 2011-2022 走看看