发布于2021-03-13 14:10 阅读(882) 评论(0) 点赞(8) 收藏(3)
迪米特法则(Law of Demeter)又叫作最少知识原则,最少知道原则(The Least Knowledge Principle),一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。英文简写为: LOD。
是“朋友”的情况
1)当前对象本身(this)
2)以参量形式传入到当前对象方法中的对象
3)当前对象的实例变量直接引用的对象
4)当前对象的实例变量如果是一个聚集(比如说List< Node >),那么聚集中的元素也都是朋友
5)当前对象所创建的对象
不是“朋友”的情况
class A{
public B getB() {
return new B();
}
}
class B{
public void methodB() {
}
}
public class NotFriendsTest {
public void test() {
A a=new A();
B b=a.getB(); //这个时候通过a调用方法返回的b就不是朋友
b.methodB();//这个时候就不符合
changeFriends(b); //只能再写一个方法把b作为参数传入调用b的方法
}
public void changeFriends(B b) {
b.methodB();
}
}
电脑关机
违反迪米特原则的写法
public class Person {
public static void main(String[] args) {
Computer computer=new Computer();
computer.closeProcess();
computer.closeScreen();
computer.outage();
}
}
class Computer{
public void closeProcess() {
System.out.println("关闭进程");
}
public void closeScreen() {
System.out.println("关闭屏幕");
}
public void outage() {
System.out.println("断电");
}
}
正确写法
public class Person {
public static void main(String[] args) {
Computer computer=new Computer();
computer.close();
}
}
class Computer{
public void close() {
closeProcess();
closeScreen();
outage();
}
private void closeProcess() {
System.out.println("关闭进程");
}
private void closeScreen() {
System.out.println("关闭屏幕");
}
private void outage() {
System.out.println("断电");
}
}
原文链接:https://blog.csdn.net/PoemLemon/article/details/114683412
作者:哦哦好吧
链接:http://www.javaheidong.com/blog/article/114424/87bf1c4d189c267569de/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!