Java學習筆記 30 OCP設計原則

2021-08-06 03:09:05 字數 1406 閱讀 1870

ocp設計原則,即open close principle,指對程式的擴充套件是開放的,而對修改是關閉的。

*不符合ocp的設計

package day30;

public

class test

}class dog

public

void

sleep()

}class cat

public

void

sleep()

}class person

public

void

feed(cat cat)

}

在上面的**中,如果想養乙隻鳥(想要擴充套件),那麼person類裡就需要修改(需做修改),這不符合「對擴充套件是開放的,對修改是關閉的」。

要符合ocp設計原則,就要依賴抽象而非具體,嘗試對上面的**進重構。dog,cat,bird中有共同的方法sleep()和eat(),嘗試把它們抽象出來(向上抽象到乙個pet類或介面)裡),然後讓person去依賴抽象出的pet,而不是具體的哪一種寵物,這就是依賴抽象而非具體。

*符合ocp的設計

package day30;

public

class

test

}//抽象出的pet

inte***ce

petclass

dogimplements

pet@override

public

void sleep()

}class

catimplements

pet@override

public

void sleep()

}class

person

}

當要擴充套件上面的**,要加入乙個寵物bird類時,不需要修改person類(因為它依賴的是抽象的pet介面),這也就是「對擴充套件是開放的,對修改是關閉的」。

*用繼承關係實現

package day30;

public

class

test

}//抽象出的pet

abstract

class

petclass

dogextends

pet@override

public

void sleep()

}class

catextends

pet@override

public

void sleep()

}class

person

}

OCP筆記部分整理 學習參考

em重建 emca config dbcontrol db repos recreate 第九天 錄影6 關於使用em建立自動作業 開啟em 管理 資料庫排程程式 作業 通過上述建立相關作業實現自動執行 注意 windows裡 oraclejobschedulerorcl 服務必須啟動 第十天 錄影...

python學習手冊筆記 30 類的設計

00.python的oop實現可以概括未三個概念 繼承 繼承是給予python中的屬性查詢 多型 在x.method方法中,method的意義取決於x的型別 封裝 方法和運算子實現行為,資料隱藏預設是一種管理 01.從設計的角度來看,繼承是一種定義集合成員關係的方式 類定義了一組內容屬性,可由具體的...

Java設計模式學習筆記1

用最簡單加減法來舉例 calculate 計算方法介面 public inte ce calculate分別建立add以及sub子類並實現其邏輯 public class addimplements calculate public class subimplements calculate 建立c...