開閉原則
open-close principle(ocp)
softeware entities should be open for extension,but closed for modification.
黎克特制代換原則
liskov substitution principle(lsp)
如果對每乙個類為t1的物件o1,都有類為t2的物件o2,使得 以t1定義的所有程式p在所有的物件o1都代換成o2時,程式p的行為沒有變化,則類t2是類t1的子類。
關於父子類的關係,《墨子 小取》有喻:
「白馬,馬也。乘白馬,乘馬也。驪馬,馬也。乘驪馬,乘馬也。獲,人也。
愛獲,愛人也。臧,人也。愛臧,愛人也。此乃是而然者也。
ridehorse(horse horse);->ridehorse(whitehorse whitehorse);
反之則不成立
獲之親,人也。獲事其親,非事人也。其弟,美人也。愛弟,非愛美人也。
車,木也。乘車,非乘木也。船,木也。乘船,非乘木也。盜.人也。多盜,非多
人也。無盜,非無人也。
依賴倒轉原則
dependence inversion principle(dip)
abstractions should noet depend upon details.
details should depend upon abstractions.
介面隔離原則
inte***ce segregation principle(isp)
使用多個專門的介面比使用乙個單一的大介面要好
合成/聚合復用原則
composite/aggregate reuse principle(carp)
合成是值的聚合
聚合是引用的聚合
迪公尺特法則
law of demeter(lod)
or:least knowledge principle(lkp)
某人->朋友->朋友的朋友
常使民無知無慾;雞犬之聲相聞,民至老死,不相往來
java與設計模式讀書筆記
閱讀此書已幾天有餘,雖然自己是菜鳥,但是依然被其中精巧的設計模式所吸引,因此決定留下該讀書筆記,以日後可查閱,更希望有高手可以不恥下看,幫忙改正其中的不對之處,由於能力有限,其中必定漏洞百出,還望見諒。color red 開 閉 原則 color 這個原則說的是,在設計乙個模組的時候,應該使這個模組...
Java與模式 讀書筆記 開閉原則
開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這一原則最早由bertrand meyer meyer88 提出,英文原文是 software entities should be open for extension,but closed for modification.書中列出...
JAVA讀書筆記(三)
string類沒有提供修改乙個已存在的字串中的某乙個字元的方法,例如 string greeting hello 如果想把greeting變成 help 不能直接把greeting的最後一位變成 p 和 而是保留需要的字串,將替換的字串通過 連線在一起。greeting greeting.subst...