[心得整理] c# 物件導向程式 - 6.LKP 最少知識原則
前言
今天要介紹LKP 最少知識原則(LoD 狄米特法則)
要把三大特性的封裝,加點料
最少知識原則 - 現實生活面
到餐廳用餐,我們只會面對服務生點餐,等待上菜
假設跟服務生點餐後還要跑去廚房說要做哪些菜
等做好菜再請服務生端上,這些事情都要客人來做的話(這餐廳應該倒了吧)
所以點餐後的流程,我們並不知道 就是最少知識原則
最少知識原則 - 程式面
已經成形的操作流程就封裝起來
一個物件應該對其他物件有最少的瞭解
用個會員系統來比喻好了,登入流程是
1.檢查帳號密碼,2.檢查是否認證,3.檢查登入IP,4.最後判斷是否為VIP
是必須要按照先後順序檢查
A.我們可以提供四個方法然後跟要用的人說請依序呼叫不能顛倒喔
B.我們應該提供一個登入方法就好,然後把登入事情都封裝在這流程裡
是不是B比較好用呢,因為B遵守了最少知識原則
這樣別人在使用也方便對吧
就算以後登入要多加功能,就知道在加入登入的方法裡面
對我來說
LKP 最少知識原則,站在使用者的角度如何提供好用的服務(方法)
而不是把所有功能都公開,讓使用端想怎樣呼叫都可以(bug往往這樣產生)
LKP 最少知識原則,站在使用者的角度如何提供好用的服務(方法)
而不是把所有功能都公開,讓使用端想怎樣呼叫都可以(bug往往這樣產生)
結語
封裝的好,大家使用都方便,是要好好想清楚,才開始寫code
推薦閱讀
[ASP.NET]91之ASP.NET由淺入深 不負責講座 Day19- LoD/LKP 最少知識原則
OOP學習筆記 - SOLID的(最少知識原則LKP) / 迪米特法則(LoD)
如果內容有誤請多鞭策謝謝