php設計模式的六大原則(六):迪米特法則

來源:互聯網
上載者:User
 countGirls($listGirls);}}class GroupLeader {//有清查女生的工作public function countGirls($listGirls = array()){echo '女生的數量是:' . sizeof($listGirls);}}class Girl {}class Client {public static function doing() {$teacher= new Teacher();//老師發布命令$teacher -> commond(new GroupLeader());}}Client :: doing();class Teacher {public function commond(GroupLeader $groupLeader){//告訴體育委員開始執行清查任務$groupLeader -> countGirls();}}class GroupLeader {private $_listGirls = array();//傳遞全班的女生public function __construct($listGirls){$this -> _listGirls = $listGirls;}//有清查女生的工作public function countGirls(){echo "女生數量是:" . sizeof($this -> _listGirls);}}class Girl {}class Client {public static function doing() {//初始化女生for($i=0; $i<20; $i++){$listGirls[] = new Girl();}$teacher= new Teacher();//老師發布命令$teacher -> commond(new GroupLeader($listGirls));}}Client :: doing();

一個對象應該對其他對象瞭解最少。

迪米特法則的核心就是降低類鍵的耦合,從而提高類的複用性。

具體體現:

① 在類的劃分上,應該建立有弱耦合的類;
② 在類的結構設計上,每一個類都應當盡量降低成員的存取權限;
③ 在類的設計上,只要有可能,一個類應當設計成不變類;
④ 在對其他類的引用上,一個對象對其它對象的引用應當降到最低;
⑤ 盡量降低類的存取權限;
⑥ 謹慎使用序列化功能(類或介面在用戶端變更,卻未在服務端同步更新,引發序列化失敗,,專案管理易疏忽);
⑦ 不要暴露類成員,而應該提供相應的訪問器(屬性)。

迪米特法則主要運用在觀察者模式和中介者模式中

迪米特法則的缺點:

1、遵循類之間的迪米特法則會使一個系統的局部設計簡化,因為每個局部都不會與遠距離的對象有直接的關聯;但也會造成不同模組之間的通訊效率降低,會使系統的不同模組之間不容易協調。

2、在系統中造出大量的小方法,散落在系統的各個角落。這些方法僅傳遞間接的調用,與系統的商務邏輯無關。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.