一、定义
- 创建一个类时要采用的一套原则。
- 要求一个对象对其他对象有最少的了解。
- 降低类之间的耦合。
二、代码
违反迪米特原则的代码:
代码语言:javascript复制 //电脑:关机的行为、
public class Computer
{
//1.保存当前程序
public void SaveCurrentTask()
{
Console.WriteLine("保存当前程序");
}
//2.关闭屏幕
public void CloseScreen()
{
Console.WriteLine("关闭屏幕");
}
//3.关闭电脑
public void ShutDown()
{
Console.WriteLine("关闭电脑");
}
}
//人:调用电脑关机的行为
public class Person
{
public void CloseComputer(Computer c)
{
//不符合迪米特原则
c.SaveCurrentTask();
c.CloseScreen();
c.ShutDown();
}
}
迪米特原则的代码
代码语言:javascript复制 //电脑:关机的行为、
public class Computer
{
//1.保存当前程序
public void SaveCurrentTask()
{
Console.WriteLine("保存当前程序");
}
//2.关闭屏幕
public void CloseScreen()
{
Console.WriteLine("关闭屏幕");
}
//3.关闭电脑
public void ShutDown()
{
Console.WriteLine("关闭电脑");
}
public void CloseComputer()
{
this.SaveCurrentTask();
this.CloseScreen();
this.ShutDown();
}
}
//人:调用电脑关机的行为
public class Person
{
public void CloseComputer(Computer c)
{
//符合迪米特原则
c.CloseComputer();
}
}
三、只和直接朋友进行通信
- 成员对象
- 方法参数
- 方法返回值
- 注意:出现在局部变量中的类,不是直接朋友。