2016年1月22日 星期五

物件導向

物件導向專業術語說明

`Overload`
利用class建構式進行處理。簡單說在類別中定義與「類別相同」名稱,但是帶入「引數個數不同」
如:
public function Man() {}
public function Man($age) {}
public function Man($age, $company) {}

`Override`
「子類別」繼承「父類別」,同時必須「引數個數相同」、「method相同」、「傳回資料型態相同」等條件

`Overload`與`Override`參考說明網址
http://yensrule.blogspot.tw/2010/10/overloading-vs-overriding.html

============================================================

物件導向原則
系統抽象程度看interface,重用程度看abstract

SOLID 六項原則

單一職責原則SRP(Single Responsibility Principle)
  • 一個類別處理一個職責的內容,
  • 一個class如果要負責多個職責,其內容應該只是組合多個class,而每個被組合的class只負責單一職責,且通常這樣的組合都是透過接口(interface/abstract)。
  • 好處:
    class複雜性降低,因為實現什麼職責都有很清楚的定義
    可讀性提高
    可維護性提高
    變更引起的風險降低,變更範圍降低,擴展性提高
  • 參考網址:https://dotblogs.com.tw/hatelove/2010/10/16/single-responsibility-principle

開放封閉原則OCP(Open Closed Principle)



里氏替換原則LSP(Liskov Substitution Principle)


介面隔離原則ISP(Interface Segregation Principle)


依賴反轉原則DIP(Dependency Inversion Principle)


============================================================

Design Patterns
  • 三大特性:封裝、繼承、多型
  • 兩種抽象:interfact, abstract
  • 目的:高內聚、低耦合(http://ppt.cc/314ot、https://dotblogs.com.tw/hatelove/2010/10/16/oo-loosely-coupling)
  • SOLID 原則:單一職責原則、開放封閉原則、里氏替換原則、最小知識原則、介面隔離原則、依賴反轉原則
  • 基本設計原則:DRY, KISS, YAGNI
  • 基本設計方式:interface-driven, intention-driven, 生成物件與使用物件分開

意圖導向設計intention-driven design


參考網址:
  1. http://ppt.cc/U9j6
  2. http://ppt.cc/RJq8l
  3. http://irw.ncut.edu.tw/peterju/se.html

沒有留言:

張貼留言