<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      七大設(shè)計原則之迪米特法則

      定義

        迪米特法則(Law of Demeter,LoD)也稱為最少知識原則(Least Knowledge Principle,LKP)。

        一個對象應該對其他對象有最少的了解。通俗地講,一個類應該對自己需要耦合或調(diào)用的類知道得最少,它的內(nèi)部是如何復雜都和自己沒關(guān)系,只需知道它提供的public方法,其他的一概不關(guān)心。

       廣義的迪米特法則:
          一個模塊設(shè)計的好壞的一個重要標志就是該模塊在多大程度上講自己的內(nèi)部數(shù)據(jù)與實現(xiàn)的有關(guān)細節(jié)隱藏起來。
          一個軟件實體應當盡可能少的與其他實體發(fā)生相互作用。
          每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關(guān)的軟件單位。

      目的

        在于降低類與類之間的耦合。由于每個類盡量減少對其他類的依賴,因此,很容易使得系統(tǒng)的功能模塊功能獨立,是的相互間存在盡可能少的依賴關(guān)系。

      優(yōu)點

        迪米特法則的做法觀念就是類間解耦,弱耦合,只有弱耦合了以后,類的復用率才可以提高。

      缺點

           造成系統(tǒng)的不同模塊之間的通信效率降低,使系統(tǒng)的不同模塊之間不容易協(xié)調(diào)等缺點。

         因為迪米特法則要求類與類之間盡量不直接通信,如果類之間需要通信就通過第三方轉(zhuǎn)發(fā)的方式,這就直接導致了系統(tǒng)中存在大量的中介類,大大增加了系統(tǒng)的復雜度。

        解決這個問題的方式是:使用依賴倒轉(zhuǎn)原則(通俗的講就是要針對接口編程,不要針對具體編程), 這要就可以是調(diào)用方和被調(diào)用方之間有了一個抽象層,被調(diào)用方在遵循抽象層的前提下就可以自由的變化,此時抽象層成了調(diào)用方的朋友。

       

      注意事項

          第一:在類的劃分上,應當創(chuàng)建弱耦合的類,類與類之間的耦合越弱,就越有利于實現(xiàn)可復用的目標。
          第二:在類的結(jié)構(gòu)設(shè)計上,每個類都應該降低成員的訪問權(quán)限。
          第三:在類的設(shè)計上,只要有可能,一個類應當設(shè)計成不變的類。
          第四:在對其他類的引用上,一個對象對其他類的對象的引用應該降到最低。
          第五:盡量限制局部變量的有效范圍,降低類的訪問權(quán)限。

       簡單示例:

        上課時,教師讓學習委員進行點名

      namespace DesignPrinciples.LowOfDemeter
      {
          class Program
          {
              static void Main(string[] args)
              {
                  GroupLeader group = new GroupLeader();
                  Teacher teacher = new Teacher();
                  teacher.Command(group);
                  Console.WriteLine("==== 我是分割線 ====");
                  teacher.CommandByDemeter(group);
              }
          }
      
          public class Teacher
          { 
              /// <summary>
              /// 教師發(fā)送命令
              /// </summary>
              /// <param name="group"></param>
              public void Command(GroupLeader group)
              {
                  List<Student> students = new List<Student>();
                  for (int i = 0; i < 20; i++)
                  {
                      students.Add(new Student());
                  }
                  group.Count(students);
              }
      
              public void CommandByDemeter(GroupLeader group)
              { 
                  group.CountByDemeter();
              }
          }
      
          public class GroupLeader
          {
              /// <summary>
              /// 學習委員點名
              /// </summary>
              /// <param name="girls"></param>
              public void Count(List<Student> girls)
              {
                  Console.WriteLine("學生人數(shù):" + girls.Count);
              }
      
              public void CountByDemeter()
              {
                  List<Student> students = new List<Student>();
                  for (int i = 0; i < 20; i++)
                  {
                      students.Add(new Student());
                  }
                  Console.WriteLine("學生人數(shù)(迪米特):" + students.Count);
              }
          }
      
          public class Student
          {
              public string Name { get; set; }
          }
      }


       

      參考:

      http://www.rzrgm.cn/wisdo/p/4178723.html

       

      歡迎閱讀本系列文章:Head First設(shè)計模式之目錄

       

      posted @ 2017-08-05 00:27  心存善念  閱讀(1871)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 婷婷四虎东京热无码群交双飞视频| 国产美女高潮流白浆视频| 来凤县| 国产中文一区卡二区不卡| 国产精品视频一区不卡| 99精品国产丝袜在线拍国语| 亚洲av激情五月性综合| 一本一道av中文字幕无码| 欧美人与zoxxxx另类| 亚洲综合伊人久久大杳蕉| 巴林左旗| 精品偷拍一区二区三区| 成人视频在线观看| 欧美日本在线一区二区三区| 2021亚洲爆乳无码专区| 国产午夜福利视频在线| 久久精品无码鲁网中文电影| 四虎永久播放地址免费| 久久理论片午夜琪琪电影网| 色噜噜噜亚洲男人的天堂| 国产成人无码免费视频在线| 久久se精品一区精品二区国产| 无码小电影在线观看网站免费| 久久99精品久久久久久9| 一区二区三区鲁丝不卡| 伊人色综合久久天天| 国产一区二区三中文字幕| 国产在线线精品宅男网址| 中文字幕乱码人妻综合二区三区| 成人拍拍拍无遮挡免费视频| 乱色欧美激惰| 久久高清超碰AV热热久久| 国产一区二区精品久久凹凸| 淳化县| 精品无码国产日韩制服丝袜| A毛片终身免费观看网站| 看全色黄大黄大色免费久久| 久久亚洲人成网站| 日日橹狠狠爱欧美视频| 我国产码在线观看av哈哈哈网站| 精品国产片一区二区三区|