迪米特原则

迪米特原则迪米特原则主要强调类与类之间的耦合度 现在来设计一个权限系统 boss 需要查看目前发布到线上的课程数 这时候 这时候 boss 要找 TeamLeader 去统计 TeamLeader 再把结果告诉 boss 接下来我们来看具体例子 publicclassc publicclassT publicvoidch Li

public class cource {} public class TeamLeader { public void checkNumberOfCource(List 
  
    courceList){ System.out.println("目前已发布的课程数量:"+courceList.size()); } } public class Boss { public void commandCheckNumber(TeamLeader teamLeader){ //模拟boss一页一页往下翻,Teamleader实时统计 List 
   
     list = new ArrayList 
    
      (); for(int i =0 ; i<20;i++){ list.add(new cource()); } teamLeader.checkNumberOfCource(list); } } public static void main(String[] args) { Boss boss =new Boss(); TeamLeader teamLeader=new TeamLeader(); boss.commandCheckNumber(teamLeader); } 
     
    
  

要是这样的话也能实现这个需求,根据迪米特原则,boss没有必要去知道具体的实现。

public class TeamLeader(){ public void checkNumberOfCource(){ //模拟boss一页一页往下翻,Teamleader实时统计 List 
  
    list = new ArrayList 
   
     (); for(int i =0 ; i<20;i++){ list.add(new cource()); } System.out.println("目前已发布的课程数量:"+list.size()); } } public class Boss(){ public void commandCheckNumber(TeamLeader team){ team.checkNumberOfCource(); } } public static void main(String[] args) { Boss boss = new Boss(); boss.commandCheckNumber(new TeamLeader()); } 
    
  

迪米特原则说的就是只和朋友交流,不和陌生人交流

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

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

(0)
上一篇 2026年3月20日 上午11:05
下一篇 2026年3月20日 上午11:06


相关推荐

  • navicat永久激活码最新2021【在线注册码/序列号/破解码】

    navicat永久激活码最新2021【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    153
  • idea免费激活码-激活码分享

    (idea免费激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9071407CR5-eyJsaWNlbnNlSWQiOi…

    2022年3月22日
    60
  • 自己实现简单java缓存类文件_java怎么把数据存到缓存中

    自己实现简单java缓存类文件_java怎么把数据存到缓存中需求分析项目中经常会遇到这种场景:一个变量需要在多处共享,有些变量还有时效性,过期自动失效,比如手机验证码,发送之后需要缓存起来,然后处于安全性考虑,一般还要设置有效期,到期自动失效。我们怎么实现这样的功能呢?解决方案使用现有的缓存技术框架,比如redis,ehcache。优点:成熟,稳定,功能强大;缺点,项目需要引入对应的框架,不够轻量。如果不考虑分布式,只是在单线程或者多线程间…

    2025年6月15日
    5
  • 阿里通义千问Qwen Chat桌面端发布,AI工具链加速多模态应用落地

    阿里通义千问Qwen Chat桌面端发布,AI工具链加速多模态应用落地

    2026年3月12日
    2
  • springBoot整合Mybatis-Plus需要的依赖_springboot中文手册

    springBoot整合Mybatis-Plus需要的依赖_springboot中文手册Springboot整合TKMapper使用TKMapper无需再创建mapper.xml文件首先基于springboot完成对MyBatis的整合,然后再对TKMapper进行整合1创建springboot项目勾选必要的依赖整合mybatis引入了mybatis的依赖,就需要配置数据库,创建application.yml文件spring:datasource:url:jdbc:mysql://192.168.1.2:3306/learn_tkmapper?serve

    2026年4月17日
    11
  • C++读写锁介绍_数据库读写锁

    C++读写锁介绍_数据库读写锁一点睛先看看互斥锁,它只有两个状态,要么是加锁状态,要么是不加锁状态。假如现在一个线程a只是想读一个共享变量i,因为不确定是否会有线程去写它,所以我们还是要对它进行加锁。但是这时又有一个线程b试图去读共享变量i,发现被锁定了,那么b不得不等到a释放了锁后才能获得锁并读取i的值,但是两个读取操作即使是同时发生的,也并不会像写操作那样造成竞争,因为它们不修改变量的值。所以我们期望在多个线…

    2022年8月12日
    9

发表回复

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

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