想像你在設計一個系統,而這個系統裡有一個超級大的介面,裡面包含了所有功能。結果每次你只想加一個小功能,卻必須修改這個巨大介面,還要實作你根本不需要的其他功能,這不僅浪費時間,還讓整個系統越來越複雜。
這時候就輪到「介面隔離原則」出場了!這個原則的意思是:「不要強迫一個類別去實作它不需要的功能」,而是把大的介面拆分成小介面,讓每個類別只負責自己需要的部分。
舉個簡單的例子
假設你是個廚師,假如公司要求你不僅要煮飯,還要兼任洗衣、修車,那你會不會覺得超級混亂?這就是系統裡的大介面可能會造成的困擾。
如果我們遵守介面隔離原則,那就是把煮飯、洗衣、修車分成不同的工作內容,廚師只需要專注於煮飯,不會被其他工作拖累。這樣不僅讓每個人做自己擅長的事,也避免了很多不必要的麻煩。
遵守這個原則後,我們會將「煮飯」、「洗衣」、「修車」分成三個小介面,這樣廚師只需要實作「煮飯」的部分,完全不需要理會其他不相關的事。
這麼做有什麼好處?
首先這樣讓程式碼更乾淨,維護也更容易。因為我們只需要關注自己負責的部分,不會被不相關的功能牽連。再來修改某個功能時,系統的其他部分不會受到影響,降低了出錯的風險。
當然也不是說每個介面都要切得非常小,過度拆分反而會讓系統變得難以管理。所以我們在設計時要保持一個平衡,既要讓介面簡單明確,又不要把事情弄得太過複雜。
實際應用
比如在寫GUI使用者介面時,按鈕的功能跟下拉選單的功能是不一樣的,按照介面隔離原則,我們會把這些功能拆分成不同的介面,讓每個元件各司其職,這樣系統就會變得更靈活,維護起來也更容易。
總結一下,介面隔離原則就是讓每個人專注在自己擅長的事,不要被額外的事情打擾。就像你不會要求廚師去修車一樣,程式碼也應該只做它該做的事,這樣不僅讓系統更簡單,維護起來也少了很多麻煩。專注才能帶來效率,這就是介面隔離原則的核心精神!
對設計原則感興趣的朋友,推薦參考我在iThome鐵人賽的文章。
https://ithelp.ithome.com.tw/articles/10356032