本文

狄米特法則 Law of Demeter(LoD)

又稱為 最少知識原則 Least Knowledge Principle(LKP)

定義

一個 object 應該對其他 object 有最少的瞭解。

優點

  • 1、可以降低類別與類別之間的耦合度。
  • 2、當耦合度降低的時候,類別的重用性就會提高。

2020/08/25 更新範例
舉例:前面例子我們知道特斯拉都是透過軟體的更新來讓車子增加新功能的,今天我們需要特斯拉有招喚模式,讓特斯拉能夠自己開到我們所在的位子;所以我們建造一個特斯拉類別裡面有更新系統的動作。

	public class 特斯拉
        {

            public string 啟動更新系統()
            {
                return "系統更新啟動";
            }

            public string 加入特斯拉招喚模式()
            {
                return "新增招喚模式中";
            }

            public string 系統更新結果()
            {
                return "系統更新成功";
            }

        }
		
	private static void Main(string[] args)
        {
            var 特斯拉 = new 特斯拉();

            Console.WriteLine(特斯拉.啟動更新系統());
            Console.WriteLine(特斯拉.加入特斯拉招喚模式());
            Console.WriteLine(特斯拉.系統更新結果());
        }

對使用者來說他並不需要知道特斯拉是如何更新系統的,他應該只需要知道進行更新系統的動作,特斯拉會新增招喚模式;所以程式就能改寫如下。


	public class 特斯拉
        {
            public string 更新(string 更新項目)
            {
                return $"更新開始 : 新增{更新項目}完畢";
            }
        }
		
	 private static void Main(string[] args)
        {
            var 特斯拉 = new 特斯拉();
            Console.WriteLine(特斯拉.更新("招喚模式"));
        }

如此一來使用者只須要知道按下更新按鈕,就可以將選擇要更新的項目安裝完畢;而更新軟體這個 Class 也可以套用在未來增加其他功能時使用。

參考連結