亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第6天+迪米特原則:最少知道原則

標簽:
Java

课程名称:Java设计模式精讲 Debug方式+内存分析

课程章节:第3章 软件设计七大原则

主讲老师:Geely

课程内容:

迪米特原则:最少知道原则:图片描述

问题1)定义?

一个对象应该对其他对象保持最少的了解。

问题2)作用和优点:

降低类之间的耦合。

问题3)具体体现:强调只和朋友交流,不和陌生人说话?哪些是朋友?哪写不上朋友?

朋友:出现在成员变量,方法的输入,输出参数中的类称为朋友类。
而出现在方法体内部的类不属于朋友类。
也就是说,不要在方法中引入非朋友类和对象。

注意:可以使用依赖注入,引入任意的成员变量,但是迪米特法则是要根据业务调用链,确定哪些是需要引入的成员变量。哪些是不能直接引入的,这个需要根据业务进行确认。
图片描述

问题4)boss 让teamLeader报告一下网站上一共有多少个课程。

版本一:Course不是Boss类的朋友,因为它在方法的内部。本来该TeamLeader类和Course类是朋友的,现在变成了Boss类和Course类是朋友。

/**

  • 业务:
  • boss 让teamLeader报告一下网站上一共有多少个课程。
    */
    public class Boss {
    public void CommandCheckCourse(TeamLeader teamLeader){
    List courseList = new ArrayList();
    for(int i = 0; i<20; i++){
    courseList.add(new Course());
    }
    teamLeader.checkNumberOfCourse(courseList);
    }
    }

public class Course {
}

public class TeamLeader {
public void checkNumberOfCourse(List course){
System.out.println(“课程总数为”+course.size());
}
}

版本二:TeamLeader类和Course类是朋友。符合迪米特法则,最少知道原则。

/**

  • 业务:
  • boss 让teamLeader报告一下网站上一共有多少个课程。
    */
    public class Boss {
    public void CommandCheckCourse(){
    TeamLeader teamLeader = new TeamLeader();
    teamLeader.checkNumberOfCourse();
    }
    }
    public class Course {
    }
    public class TeamLeader {
    public void checkNumberOfCourse(){
    Course course = new Course();
    List courseList = new ArrayList();
    for(int i = 0; i<20; i++){
    courseList.add(new Course());
    }
    System.out.println(“课程总数为”+courseList.size());
    }
    }

图片描述

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消