分析詳見:
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是繼承復用的基石,只有當衍生類可以替...