wordpress仿站抓取软件,北京装修公司排名电话,网站首页面,微信手机官方网站迪米特法则 又叫最少知识法则
类中的成员属性和成员方法#xff0c;如果不需要对外暴露#xff0c;就不要设成public。
代码如下:
#include iostream
#include string
using namespace std;class AbstractBuilding
{
public:virtual void sale() 0;
};cl…迪米特法则 又叫最少知识法则
类中的成员属性和成员方法如果不需要对外暴露就不要设成public。
代码如下:
#include iostream
#include string
using namespace std;class AbstractBuilding
{
public:virtual void sale() 0;
};class BuildingA :public AbstractBuilding
{
public:BuildingA():quilty(高品质){}virtual void sale(){cout 楼盘A quilty 被售卖! endl;}string quilty;
};class BuildingB :public AbstractBuilding
{
public:BuildingB() :quilty(低品质) {}virtual void sale(){cout 楼盘B quilty 被售卖! endl;}string quilty;
};void test01()
{BuildingA *ba new BuildingA;if (ba-quilty 低品质){ba-sale();}BuildingB *bb new BuildingB;if (bb-quilty 低品质){bb-sale();}
}int main()
{test01();return 0;
}测试结果: 迪米特法则 代码如下:
#include iostream
#include string
#include vector
using namespace std;class AbstractBuilding
{
public:virtual void sale() 0;virtual string getQuilty() 0;
};class BuildingA :public AbstractBuilding
{
public:BuildingA():quilty(高品质){}virtual void sale(){cout 楼盘A quilty 被售卖! endl;}virtual string getQuilty(){return quilty;}
private:string quilty;
};class BuildingB :public AbstractBuilding
{
public:BuildingB() :quilty(低品质) {}virtual void sale(){cout 楼盘B quilty 被售卖! endl;}virtual string getQuilty(){return quilty;}private:string quilty;
};//中介类
class Mediator {
public:Mediator(){AbstractBuilding *building new BuildingA;vBuilding.push_back(building);building new BuildingB;vBuilding.push_back(building);}~Mediator(){for (vectorAbstractBuilding*::iterator it vBuilding.begin(); it ! vBuilding.end(); it){if (*it ! nullptr){delete *it;}}}//对外提供接口AbstractBuilding *findMyBuilding(string quality){for (vectorAbstractBuilding*::iterator it vBuilding.begin(); it ! vBuilding.end(); it){if ((*it)-getQuilty()quality){return *it;}}return nullptr;}vectorAbstractBuilding* vBuilding;};void test01()
{Mediator *mediator new Mediator;//优点:用户不用跟具体楼盘打交道AbstractBuilding * building mediator-findMyBuilding(高品质);if (building ! nullptr){building-sale();}else{cout 没有符合条件的楼盘 endl;}
}int main()
{test01();return 0;
}测试结果: