zoukankan      html  css  js  c++  java
  • 设计模式(8)--外观模式

    //迪米特法则: 也叫最少知识原则。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。
    //如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
    //前提: 在类的结构设计上,每一个类都应当尽量降低成员的访问权限。
    //根本思想: 强调了类之间的松耦合。

    //8.外观模式
    //ver1
    //股票1
    class Stock1
    {
    public:
    	void Buy(){}
    	void Sell(){}
    };
    //股票2
    class Stock2
    {
    public:
    	void Buy(){}
    	void Sell(){}
    };
    //国债1
    class NationalDebt1
    {
    public:
    	void Buy(){}
    	void Sell(){}
    };
    //房地产1
    class Realty1
    {
    public:
    	void Buy(){}
    	void Sell(){}
    };
    
    //基金类
    class Fund
    {
    private:
    	Stock1 *ps1;
    	Stock2 *ps2;
    	NationalDebt1 *pnd1;
    	Realty1 *prt1;
    public:
    	Fund()
    	{
    		ps1 = new Stock1();
    		ps2 = new Stock2();
    		pnd1 = new NationalDebt1();
    		prt1 = new Realty1();
    	}
    
    	//方法A
    	void MethodA()
    	{
    		ps1->Buy();
    		ps2->Buy();
    	}
    	//方法B
    	void MethodB()
    	{
    		pnd1->Buy();
    		prt1->Buy();
    	}
    };
    
    void main1()
    {
    	Fund *pjj = new Fund(); //外观类需要了解所有的子系统的方法或属性,进行组合,以备外界调用。
    	pjj->MethodA();
    	pjj->MethodB();
    }
    

    //外观模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

    //何时使用外观模式:
    //1.在设计初期阶段,应该要有意识的将不同的两个层分离。
    //2.在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂。
    //增加外观类可以提供一个简单的接口,减少他们之间的依赖。

  • 相关阅读:
    oracle数据库基础知识汇总—30天(一)
    SQL server
    mySQL 黑窗口运行命令
    MySQL
    常用网址
    常见浏览器JS引擎和内核
    nodejs
    audio标签自动播放在安卓播放正常,IOS不能自动播放
    Microsoft.Office.Interop.Excel Find 操作
    python 的os.getenv("PATH")和os.environ.get("PATH")的区别
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/6028851.html
Copyright © 2011-2022 走看看