设计模式(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();
}

 

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

//什么时候使用外观模式:
//1.在设计初期阶段,应该要有意识的将不一样的两个层分离。
//2.在开发阶段,子系统每每由于不断的重构演化而变得愈来愈复杂。
//增长外观类能够提供一个简单的接口,减小他们之间的依赖。接口

相关文章
相关标签/搜索