设计模式8-迪米特法则

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;
}

发布了26 篇原创文章 · 获赞 7 · 访问量 883

猜你喜欢

转载自blog.csdn.net/qq_29067097/article/details/104200245