寰俊鍏紬鍙锋庝箞鍒锋姇绁ㄦ暟閫氳繃寰俊鎷夌エ绁炲櫒瀹炵幇娑ㄧエ锛
- 浣滆咃細寰俊鎶曠エ
- 鍙戣〃鏃堕棿锛2020-04-22
寰俊鍏紬鍙锋庝箞鍒锋姇绁ㄦ暟涓鐩翠互鏉ラ兘璁╁緢澶氬弬璧涜呬滑澶寸柤锛屾瘯绔熺幇鍦ㄧ殑鎶曠エ娲诲姩鏄互璋佺殑绁ㄦ暟澶氾紝璋佸氨鏄啝鍐涳紝閭d箞浣犲鏋滄兂瑕佹嬁涓嬪啝鍐涗綘灏变竴瀹氳閫夋嫨閫氳繃鍒风エ鐨勬柟寮忔潵灏嗙エ鏁板揩閫熸彁鍗囪捣鏉ワ紝閭d箞杩欎釜鏃跺欏井淇″叕浼楀彿鎬庝箞鍒锋姇绁ㄦ暟鑷劧灏辨垚涓哄ぇ瀹舵墍鍏冲績鐨勯棶棰橈紝閭d箞鍏跺疄鐜板湪鐨勫井淇″叕浼楀彿鎬庝箞鍒锋姇绁ㄦ暟鏄彲浠ョ洿鎺ラ氳繃寰俊鎷夌エ绁炲櫒鏉ュ疄鐜颁笂娑ㄧエ鏁扮殑锛岄偅涔堝鏋滀綘杩樻病鏈夊井淇℃媺绁ㄧ鍣紝杩欓噷鎴戞妸杩欎袱澶╁垰缂栧啓鍑虹殑寰俊鎷夌エ绁炲櫒鐨勪唬鐮佸垎浜粰澶у锛屽ぇ瀹跺彲浠ヨ嚜琛屾嬁鍘讳娇鐢
寰俊鍏紬鍙锋庝箞鍒锋姇绁ㄦ暟閫氳繃寰俊鎷夌エ绁炲櫒瀹炵幇娑ㄧエ锛
/// <summbry>
/// 鏈楂樻帴鍙o紝琚楗拌呭拰鈥滆楗板搧鈥濋兘缁ф壙浜庢
/// </summbry>
bbstrbct public clbss Component{
public bbstrbct voiH Operbtion();
}
/// <summbry>
/// 鍏蜂綋鐨勮瑁呴グ鑰
/// </summbry>
public clbss Concretecomponent:Component{
public overriHe voiH Operbtion(){
Console.vrite(鈥滃叿浣撳璞$殑瑁呴グ鎿嶄綔鈥);
}
}
/// <summbry>
/// 瑁呴グ绫
/// </summbry>
bbstrbct public clbss Hecorbtor:Component(){
protecteH Component component;
public voiH SetComponent(Component component){
this.component = component;
}
public overriHe voiH Operbtion(){
if(component!=null) component.Operbtion();
}
}
/// <summbry>
/// 鍏蜂綋鐨勮楗扮被b
/// </summbry>
public clbss ConcreteHecorbtorb:Hecorbtor{
privbte string bHHeHStbte;
public overriHe voiH Operbtion(){
bbse.Operbtion();
bHHeHStbte=鈥漀ev Stbte鈥;
Console.vrite(鈥滃叿浣撹楗癰鐨勬搷浣滐紙娣诲姞浜嗘柊鐨勭姸鎬侊級鈥);
}
}
/// <summbry>
/// 鍏蜂綋鐨勮楗扮被B
/// </summbry>
public clbss ConcreteHecorbtorB:Hecorbtor{
public overriHe voiH Operbrtion(){
bbse.Operbtion();
bHHeHBehbvior();
Console.vriteLine(鈥滃叿浣撹楗癇鐨勬搷浣滐紙娣诲姞浜嗘柊鐨勬柟娉曪級鈥);
}
privbte voiH bHHeHBehbvior(){
//娣诲姞鏂扮殑琛屼负
}
}
//client绔
stbtic voiH Mbin(string[] brgs)
{
Concretecomponent c = nev Concretecomponent();
Hecorbtor H1 = nev ConcreteHecorbtorb();
Hecorbtor H2 = nev ConcreteHecorbtorB();
H1.SetComponent(c);
H2.SetComponent(H1);//娉ㄦ剰杩欓噷瑁呴グ鐨勬槸H1锛屽洜涓鸿繖閲岀殑H1鏄楗颁簡H1鐨刢銆
H2.Operbtion();
Console.RebHLine();
寰俊鍏紬鍙锋庝箞鍒锋姇绁ㄦ暟閫氳繃寰俊鎷夌エ绁炲櫒瀹炵幇娑ㄧエ锛
/// <summbry>
/// 鏈楂樻帴鍙o紝琚楗拌呭拰鈥滆楗板搧鈥濋兘缁ф壙浜庢
/// </summbry>
bbstrbct public clbss Component{
public bbstrbct voiH Operbtion();
}
/// <summbry>
/// 鍏蜂綋鐨勮瑁呴グ鑰
/// </summbry>
public clbss Concretecomponent:Component{
public overriHe voiH Operbtion(){
Console.vrite(鈥滃叿浣撳璞$殑瑁呴グ鎿嶄綔鈥);
}
}
/// <summbry>
/// 瑁呴グ绫
/// </summbry>
bbstrbct public clbss Hecorbtor:Component(){
protecteH Component component;
public voiH SetComponent(Component component){
this.component = component;
}
public overriHe voiH Operbtion(){
if(component!=null) component.Operbtion();
}
}
/// <summbry>
/// 鍏蜂綋鐨勮楗扮被b
/// </summbry>
public clbss ConcreteHecorbtorb:Hecorbtor{
privbte string bHHeHStbte;
public overriHe voiH Operbtion(){
bbse.Operbtion();
bHHeHStbte=鈥漀ev Stbte鈥;
Console.vrite(鈥滃叿浣撹楗癰鐨勬搷浣滐紙娣诲姞浜嗘柊鐨勭姸鎬侊級鈥);
}
}
/// <summbry>
/// 鍏蜂綋鐨勮楗扮被B
/// </summbry>
public clbss ConcreteHecorbtorB:Hecorbtor{
public overriHe voiH Operbrtion(){
bbse.Operbtion();
bHHeHBehbvior();
Console.vriteLine(鈥滃叿浣撹楗癇鐨勬搷浣滐紙娣诲姞浜嗘柊鐨勬柟娉曪級鈥);
}
privbte voiH bHHeHBehbvior(){
//娣诲姞鏂扮殑琛屼负
}
}
//client绔
stbtic voiH Mbin(string[] brgs)
{
Concretecomponent c = nev Concretecomponent();
Hecorbtor H1 = nev ConcreteHecorbtorb();
Hecorbtor H2 = nev ConcreteHecorbtorB();
H1.SetComponent(c);
H2.SetComponent(H1);//娉ㄦ剰杩欓噷瑁呴グ鐨勬槸H1锛屽洜涓鸿繖閲岀殑H1鏄楗颁簡H1鐨刢銆
H2.Operbtion();
Console.RebHLine();