7 迪米特法则(最少知识原则)
7.1 描述
减少类之间的交互,减少类之间的耦合,类之间的通过第三个类去交互。
7.2 优点
1)降低类之间的耦合
2)提高了类的复用率和拓展性。
3)和依赖倒转的不同时,同级类之间不通信。依赖倒转是上层调用细节的父类来减少依赖。
7.3 缺点
产生大量中间类,增加系统的复杂性,降低通信效率。
7.4 设计原则
依赖者只依赖应该依赖的对象
被依赖者只暴露应该暴露的方法。
1) 在类的划分上,降低类之间的耦合。
2) 降低类成员的访问权限。
3) 不暴露类的属性成员。
7.5 示例
#include "stdafx.h"
#include <iostream>
class Star
{
public:
std::string GetName()
{
return name;
}
void SetName(std::string name1)
{
name = name1;
}
private:
std::string name;
};
class Fans
{
public:
std::string GetName()
{
return name;
}
void SetName(std::string name1)
{
name = name1;
}
private:
std::string name;
};
class Agent
{
public:
void SetStar(Star star)
{
_Star = star;
}
void SetFans(Fans fans)
{
_Fans = fans;
}
void Meeting()
{
std::cout << _Fans.GetName().c_str()<<"和"<<_Star.GetName().c_str()<<"见面了";
}
private:
Star _Star;
Fans _Fans;
};
int main()
{
Star star;
star.SetName("大明星");
Fans fans;
fans.SetName("小粉丝");
Agent agent;
agent.SetStar(star);
agent.SetFans(fans);
agent.Meeting();
getchar();
return 0;
}
来源:CSDN
作者:Mr-Dong
链接:https://blog.csdn.net/qq_29067097/article/details/104200245