2020年4月20日 星期一

白話設計原則

  • 里氏替換原則(Liskov Substitution principle)
    是對子類別設計的勸說或約束,要求在不修改使用端的程式演算法之下,使用到父類別實例的地方,改用子類別的實例去替代,都不會出錯

  • 依賴反轉原則(Dependency inversion principle,DIP)
    古老以前,要設計上層的的功能,得須了解下層元件有哪些功能再針對這些元件去設計,設計完之後,上層就被這些元件綁死了,上層強烈依賴下層,而且耦合度非常高。後來改成要下層去依照上層的需求來設計元件,所以才叫依賴反轉。
    不過現在一般都是依賴在一個介面,上層依介面提供的功能來使用,下層依介面設計提供服務的元件,而且耦合度降低。而介面標準也成了兵家必爭之地。

  • 開閉原則(對擴展開放,對修改封閉)
    概念上是說一個類別設計完成之後,就不應再去更動它,若要增加新功能,應該用繼承或組合去擴展,也就是說用擴展代替修改。

  • 封裝變化
    是指須要修改程式碼的部份獨立出來,通常都用策略模式來解決

  • 單一職責原則(Single responsibility principle)
    簡單地說就是類別的合理分割,但問題就在怎樣分割,分割到怎樣的程度才叫合理,十個人做十個都不一樣,只能說設計時要盡量考量清楚,途中有發現不適合也要大膽改正,畢竟日後的維護要比設計時花更多的精神和時間

  • 介面隔離原則(英語:interface-segregation principles)
    對於特定的使用端(角色)只提供符合它的介面給它用就好,實際運作的物件不要暴露給它。