在系统设计中应用迪米特法则_软件设计原则口诀

在系统设计中应用迪米特法则_软件设计原则口诀  迪米特原则又叫 迪米特法则/最少知道原则。现在我们给出迪米特原则的定义:一个对象应该对其他对象保持最少的了解。它的优点是降低了类之间的耦合。它强调只和朋友交流,不和陌生人说话。其中朋友是指出现在成员变量、方法的输入、输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。 下面我们通过代码,更好的解释迪米特原则。比如我是一个公司的老板,我开了一家网上课程网站,我让我的…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

    迪米特原则又叫  迪米特法则/最少知道原则。现在我们给出迪米特原则的定义:一个对象应该对其他对象保持最少的了解。它的优点是降低了类之间的耦合。它强调只和朋友交流,不和陌生人说话。其中朋友是指出现在成员变量、方法的输入、输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。

  下面我们通过代码,更好的解释迪米特原则。

比如我是一个公司的老板,我开了一家网上课程网站,我让我的TeamLeader帮我统计一下,目前该公司在线课程有多少个?怎么办呢,转化为代码如下:

package com.zybank.design.principle.demeter;

import java.util.ArrayList;
import java.util.List;

public class Boss {
    public void commandCheckNumber(TeamLeader teamLeader){
        List<Course> list = new ArrayList<Course>();
        for (int i =0;i<200;i++){
            list.add(new Course());
        }
        teamLeader.checkNumberOfCourses(list);
    }
}

Jetbrains全家桶1年46,售后保障稳定

package com.zybank.design.principle.demeter;

import java.util.List;

public class TeamLeader {
    public void checkNumberOfCourses(List list){
        System.out.println("总有课程"+list.size());
    }
}
package com.zybank.design.principle.demeter;

public class Course {
}

在写一个测试类:

package com.zybank.design.principle.demeter;

public class Test {
    public static void main(String[] args){
        Boss boss = new Boss();
        TeamLeader teamLeader = new TeamLeader();
        boss.commandCheckNumber(teamLeader);
    }

}

 

大家感觉上述代码怎么样?有没有什么问题?当然有问题了,这样写的代码就是违背了我们现在讲述的迪米特原则。Course这个类就不应该出现在Boss类里。老板让TeamLeader去查一下课程的数量,其他的他并不想关心。所以我们的代码可以做进一步的优化。

package com.zybank.design.principle.demeter;


public class Boss {
    public void commandCheckNumber(TeamLeader teamLeader){
        teamLeader.checkNumberOfCourses();
    }
}
package com.zybank.design.principle.demeter;

import java.util.ArrayList;
import java.util.List;

public class TeamLeader {
    public void checkNumberOfCourses(){
        List<Course> list = new ArrayList<>();
        for (int i =0;i<200;i++){
            list.add(new Course());
        }
        System.out.println("总有课程"+list.size());
    }
}
package com.zybank.design.principle.demeter;

public class Course {
}

而我们的测试类是不用改变的:

package com.zybank.design.principle.demeter;

public class Test {
    public static void main(String[] args){
        Boss boss = new Boss();
        TeamLeader teamLeader = new TeamLeader();
        boss.commandCheckNumber(teamLeader);
    }

}

经过上述代码的优化,相信我们对迪米特原则有了一个很清楚的认识。那我们在实际的开发中用起来吧。

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234303.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux里chmod_linux常用的20个命令

    linux里chmod_linux常用的20个命令linux中chmod命令的使用方法发布时间:2020-06-2417:05:24来源:亿速云阅读:79作者:元一这篇文章运用简单易懂的例子给大家介绍linux中chmod命令的使用方法,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。chmod介绍:linux中可以使用命令chmod来为文件或目录赋予权限。Linux/Unix的档案存取权限分为三级:档案拥有者、群组、其…

    2022年10月20日
  • haoxav.com forum.php,www.wwwhaoav17com.us

    haoxav.com forum.php,www.wwwhaoav17com.usDomainName:WWWHAOAV17COM.USDomainID:D58643421-USSponsoringRegistrar:TODAYNIC.COM,INC.SponsoringRegistra…

    2022年4月29日
  • DataGrid1_ItemDataBound[通俗易懂]

    DataGrid1_ItemDataBound[通俗易懂]usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebContr

    2022年10月13日
  • Java——闰年判断

    Java——闰年判断目录任务1、闰年判断(一)编程实现方法一、采用并列式多分支结构评定成绩等级方法二、采用嵌套式多分支结构评定成绩等级方法三、采用延拓式多分支结构评定成绩等级方法四、采用开关式多分支结构评定成绩等级任务1、闰年判断什么是闰年?有两种情况:能被4整除但是不能被100整除;能被400整除解决闰年判断问题,涉及三种运算:算术运算、关系运算、逻辑运算第一种闰年情况:year%4==0&&year%100!=0第二种闰年情况:year%400==0(一)编程实现

    2022年7月17日
  • pycharm输入框不跟随光标_python光标变粗了

    pycharm输入框不跟随光标_python光标变粗了返回上次编辑的地方:ctrl+shift+backspace(删除返回上次光标

    2022年8月27日
  • JavaScript Scripting.FileSystemObject FSO属性大全

    JavaScript Scripting.FileSystemObject FSO属性大全
    什么是FSO?
    FSO即FileSystemObject文件系统对象,是一种列表Windows磁盘目录和文件,对目录和文件进行删除、新建、复制、剪切、移动等操作的技术。使用FSO网站的好处:直接读取目录下的文件和子目录,方便维护,如需要添加任何内容,将文件放在相应的目录下即可;FSO网站类似Windows操作界面,易于使用,会使用Windows就会使用FSO网站。
    试想一下,很方便的就可以将您硬盘中的文件和文件夹制作成网站,并且日后只要把内

    2022年7月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号