• 设计模式(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.在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂。
    //增加外观类可以提供一个简单的接口,减少他们之间的依赖。

  • 相关阅读:
    Tizen Sample Web Applications
    Linux下RPM软件包的安装及卸载
    libevent
    GTest 运行参数
    【BBC micro:bit基础教程】02-micro:bit与人体运动检测传感器
    【BBC micro:bit基础教程】01-如何用按键控制一个LED
    CMD下查询Mysql中文乱码的解决方法
    php foreach 使用&(与运算符)引用赋值要注意的问题
    sql必知必会(第四版) 学习笔记一
    test
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/6028851.html
Copyright © 2020-2023  润新知