裝飾模式中的黎克特制代換 子類可以代替父類

2021-06-01 17:40:08 字數 701 閱讀 4041

分析詳見:

using system;

using system.collections.generic;

using system.linq;

using system.text;

}}//person類(concretecomponent)

class person

//人的姓名

private string name;

public person(string name)

//裝扮的物件描述

public virtual void show()

",name );

}}//服飾類(decorator):person這個類沒有必要知道finery類的存在,finery類的作用是對person的功能的擴充套件

class finery : person

//顯示打扮的物件,重寫父類(person)方法

public override void show()

}}//具體服飾類(concretedecorator)

class tshirts : finery

}class bigtrouser : finery

}class sneaker : finery

}class leathershoes : finery

}

設計模式 OOD的設計原則 2 黎克特制代換原則

那麼什麼是黎克特制代換原則呢?有個嚴格的表述,繞口,不好記.還是比較白話的這個好記.說的是 乙個軟體實體如果使用的是乙個基類的話,那麼一定適用於其子類,而且它察覺不出基類物件和子類物件的區別.也就是說,在軟體裡面,把基類都替換成它的子類,程式的行為沒有變化.lsp是繼承復用的基石,只有當衍生類可以替...

設計模式 OOD的設計原則 2 黎克特制代換原則

那麼什麼是黎克特制代換原則呢?有個嚴格的表述,繞口,不好記.還是比較白話的這個好記.說的是 乙個軟體實體如果使用的是乙個基類的話,那麼一定適用於其子類,而且它察覺不出基類物件和子類物件的區別.也就是說,在軟體裡面,把基類都替換成它的子類,程式的行為沒有變化.lsp是繼承復用的基石,只有當衍生類可以替...

設計模式 OOD的設計原則 2 黎克特制代換原則

那麼什麼是黎克特制代換原則呢?有個嚴格的表述,繞口,不好記.還是比較白話的這個好記.說的是 乙個軟體實體如果使用的是乙個基類的話,那麼一定適用於其子類,而且它察覺不出基類物件和子類物件的區別.也就是說,在軟體裡面,把基類都替換成它的子類,程式的行為沒有變化.lsp是繼承復用的基石,只有當衍生類可以替...