單一職責原則
開放-封閉原則
依賴倒轉原則
class tshirts : finery
}class bigtrouser : finery
}class sneakers : finery
}class suit : finery
}class tie : finery
}class leathershoes : finery
}
* 裝飾模式是對已有功能動態新增更多功能的一種方式。
* 當系統需要新功能,是向舊的類中新增新的**,這些新加的**通常裝飾了原有類的核心職責或方要行為,在主類中加入了新的字段,新的方法和新的邏輯,從而增加了主類的複雜度,而這些新加入的東西僅僅是為了滿足一些只在某種特定情況下才會執行的特殊行為的需要。而裝飾模式把裝飾功能放到單獨的類中,並讓這個類包裝它所要裝飾的物件。把類中的裝飾功能從類中搬移去除,這樣簡化原有類,有效的把類的核心職責和裝飾功能區分開,去除相關類中重複的裝飾邏輯。
###### **模式
class program
}//送禮物
inte***ce givegift
class proxy : givegift
public void givedolls()
public void giveflowers()
public void givechocolate()
}class pursuit : givegift
public void givedolls()
public void giveflowers()
public void givechocolate()
}class schoolgirl
set
}}
* 遠端**
* 虛擬**
* 安全**
* 智慧型指引
###### 工廠方法模式
/// 運算類 /// class operation
set
}public double numberb
set
}/// /// 得到運算結果
///
///
public virtual double getresult()
}/// /// 加法類
///
class operationadd : operation
}/// /// 減法類
///
class operationsub : operation
}/// /// 乘法類
///
class operationmul : operation
}/// /// 除法類
///
class operationdiv : operation
}/// /// 工廠方法
///
inte***ce ifactory
/// /// 專門負責生產「+」的工廠
///
class addfactory : ifactory
}/// /// 專門負責生產「-」的工廠
///
class subfactory : ifactory
}/// /// 專門負責生產「*」的工廠
///
class mulfactory : ifactory
}/// /// 專門負責生產「/」的工廠
///
class divfactory : ifactory
}
* 工廠方法模式實現時,客戶端需要決定例項化哪乙個工廠來實現運算類,選擇判斷的問題還是存在,工廠方法把簡單工廠的內部邏輯判斷移到了客戶端**來進行,你要加的功能,本來是改工廠類,而現在是修改客戶端。
###### 原型模式
class program
}//簡歷
class resume : icloneable
private resume(workexperience work)
//設定個人資訊
public void setpersonalinfo(string ***, string age)
//設定工作經歷
public void setworkexperience(string workdate, string company)
//顯示
public void display()
", name, ***, age);
console.writeline("工作經歷: ", work.workdate, work.company);
}public object clone()
}//工作經歷
class workexperience : icloneable
set
}private string company;
public string company
set
}public object clone()
}
* 淺複製,深複製
###### 模板模式
class program
}abstract class abstractclass
}class concreteclassa : abstractclass
public override void primitiveoperation2()
}class concreteclassb : abstractclass
public override void primitiveoperation2()
}
###### 外觀模式
class program
}class subsystemone
}class subsystemtwo
}class subsystemthree
}class subsystemfour
}class facade
public void methoda()
public void methodb()
}
###### 建造者模式
class program
}class director
}abstract class builder
class concretebuilder1 : builder
public override void buildpartb()
public override product getresult()
}class concretebuilder2 : builder
public override void buildpartb()
public override product getresult()
}class product
public void show()
}}
本文由部落格**一文多發等運營工具平台 openwrite 發布
設計模式總結 (一)
1 工廠模式屬於建立型模式,大致可以分為三類,簡單工廠模式 工廠方法模式 抽象工廠模式。簡單工廠模式,它的主要特點是需要在工廠類中通過標籤做判斷,返回例項 工廠方法模式,是指定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類。抽象工廠模式,...
移動設計模式總結(一)
最佳實踐 選單無主次之分,每個選單所佔空間大小一致。選單有主次之分,主要的佔空間較大,其餘的佔空間較小。在使用桌面式導航布局時,要充分考慮到給使用者提供個性化和定製化功能。最佳實踐 列表選單導航適合長標題或者有副標題說明,使用類表選單導航應該提供乙個從子頁面返回類表頁面的方式,通常在標題欄新增乙個乙...
物件導向設計模式總結一
物件導向設計的優點 物件導向設計的優點 可維護 可擴充套件 可復用 靈活性好。目標 物件導向設計的目標 高內聚,低耦合。設計模式分類 物件導向常見的23種設計模式主要分為 建立型 結構型和行為型。物件導向設計原則 1.單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因。1.1 如果你能夠想到多...