freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java23種設(shè)計(jì)模式(總結(jié))(編輯修改稿)

2025-07-22 06:58 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 [] args) { Person man = new Man()。 Person lady = new Lady()。 Clothing jacket = new Ja*ket()。 Clot*ing trouser = new Trouser()。 (man)。 (man)。 j*(lady)。 (lady)。 }}result 男人穿馬甲男人穿褲子女人穿馬甲女人穿褲子 組合模式 將對(duì)象組合成樹形結(jié)構(gòu)以表示部分整體的層次結(jié)構(gòu)。Composite使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)*的使用具有一致性。適用性 *層次結(jié)構(gòu)。 ,用戶將統(tǒng)一地使用組合結(jié)構(gòu)中的所有對(duì)象。 參與者 為組合中的對(duì)象聲明接口。 在適當(dāng)?shù)那闆r下,實(shí)現(xiàn)所有類共有接口的缺省行為。 聲明一個(gè)接口用于訪問和管理Component的子組件。 (可選)在遞歸結(jié)構(gòu)中定義一個(gè)接口,用于訪問一個(gè)父部件,并在合*的情況下實(shí)現(xiàn)它。 在組合中表示葉節(jié)點(diǎn)對(duì)象,葉節(jié)點(diǎn)沒有子節(jié)點(diǎn)。 在組合中定義節(jié)點(diǎn)對(duì)象的行為。 *te 定義有子部件的*些部件的行為。 存儲(chǔ)子部件。 在Component接口中實(shí)現(xiàn)與子部件有*的操作。 通過Component接*操縱組合部件的對(duì)象。類圖例子Component p*blic abstract class Employer { private String name。 public void setName(String name) { = *ame。 } public String getName() { return 。 } public abstract void add(Employer employer*。 public abstract void delete(Employer employer)。 public List employers。 public void printInfo*) { (name)。 } *ublic List getE*ployers() { return 。 }}Leaf public class Programmer extends Employer { public Programmer(String name) { setNam*(name)。 employers = null。//程序員, 表示沒有下屬了 } public v*id add(Employer employer) { } public void delete(Employer employer) { }}public class Pro*ectAssistant extends Employer { public ProjectAss*stant(String name) { setName(name)。 employers = *ull。//項(xiàng)目助理, 表示沒有下屬了 } public void add(Employer employer) { } public void delet*(Employer employer) { }}Composite public class Project*anager extends E*ployer { public ProjectManager(String name) { setName(name)。 employers = new A*rayList()。 } public void add(Employer employer) { (employer)。 } public void delete(Emplo*er employer) { (employer)。 }}Clie*t publ*c class Test { public st*tic void main(String[] args) { Employer pm = new ProjectManager(項(xiàng)目經(jīng)理)。 Emplo*er pa = new ProjectAssistant(項(xiàng)目助理)。 Employer progra*mer1 = new Programmer(程序員一)。 Employer programmer2 = new Programmer(程序員二)。 (pa)。//為項(xiàng)目經(jīng)理添加項(xiàng)目助理 (programmer2)。//*項(xiàng)目經(jīng)理*加程序員 List ems = *loyers()。 for (Employer em : ems) { (*())。 } *}result 項(xiàng)目助理程序員二 裝飾模式 動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。就增加功能來說,Decorator模*相比生成子類更為*活。適用性 *象的情況下,以動(dòng)態(tài)、透明的方式給單個(gè)對(duì)象添加職責(zé)。 。 。 參與者 定義一個(gè)對(duì)象接口,可以給這些對(duì)象動(dòng)態(tài)地添加職責(zé)。 定義一個(gè)對(duì)象,可以給這個(gè)對(duì)象添加一些職責(zé)。 維持一個(gè)指向Component對(duì)象的指針,并定義一個(gè)與Component接口一致的接口。 向組件添加職責(zé)。類圖例子Component public interface Person { void eat()。}ConcreteComponent *ublic class M*n implements Person { public void eat() { (男人在吃)。 *}Decorator public abstrac* class Decorator implements Perso* { protected Person person* public void setPerson(Person person) { = person。 } public void eat() { ()。 }}ConcreteDec*rator publi* class ManDecoratorA extends Decorator { public void eat() { ()。 reEat()。 Sy*(ManDecoratorA類)。 } public void reEat() { (再吃一頓飯)。 *}public class ManDecoratorB extends Decorator * public void eat() { ()。 Syst*(===============)。 (ManDecoratorB類)。 }}Test public class Test { public st*tic void main(Strin*[] args) { Man man = new Man()。 ManDecoratorA md1 = new ManDecoratorA()。 ManDecoratorB md2 = n*w ManDecoratorB()。 (man)。 (md1)。 ()。 }}result 男人在吃再吃一頓飯ManDecoratorA類===============ManDecoratorB類 外觀模式 為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,F(xiàn)acade模式定義了一個(gè)高層接口,這個(gè)接口使得這*子系統(tǒng)更加容易使用。適用性 *雜子系統(tǒng)提供一個(gè)簡(jiǎn)單接口時(shí)。子系統(tǒng)往往因?yàn)椴粩嘌莼兊迷絹碓? 復(fù)雜。大多數(shù)模式使用時(shí)都會(huì)產(chǎn)生更多更小的類。這使得子系統(tǒng)更具可重用性,也更容 易對(duì)子系統(tǒng)進(jìn)行定制,但這也給*些不需要定制子系統(tǒng)的用戶帶來一些使用上的困難。 Fa*ade可以提供一個(gè)簡(jiǎn)單的缺省視圖,這一視圖對(duì)大多數(shù)用戶來說已經(jīng)足*,而那些需 要更多的可定制性的用戶可以越過facade層。 。引入facade將這個(gè)子系統(tǒng)與客 戶以及其他的子系統(tǒng)分離,可以提高子系統(tǒng)的獨(dú)立性和可移植性。 ,使用facade模式定義子系統(tǒng)中每層的入口點(diǎn)。 如果子系統(tǒng)之間是相互依賴的,你可以讓它們僅通過facade進(jìn)行通訊,從而簡(jiǎn)化了它們 之間的依賴關(guān)系。 參與者 知道哪些子系統(tǒng)類負(fù)責(zé)處理請(qǐng)求。 將客戶的請(qǐng)求代理給適當(dāng)?shù)淖酉到y(tǒng)對(duì)象。 實(shí)現(xiàn)子系統(tǒng)的功能。 處理由Facade對(duì)象指派的任務(wù)。 沒有facade的任何相關(guān)信息;即沒有指向*acade的指針。類圖例子Facade publi* class Facade { ServiceA s*。 ServiceB sb。 ServiceC sc。 public Facade() { sa = new S*rviceAImpl()。 sb = new *erviceBImpl()。 sc = new ServiceCImpl()。 } public void methodA() { ()。 ()。 } publi* void methodB() { s*.methodB()。 ()。 } public void methodC() { ()。 ()。 }}Subsystemclasse* public *lass ServiceAImpl implements ServiceA { public void methodA() { (這是服務(wù)A)。 }}public class ServiceBImpl implements ServiceB { public void methodB() { (這是服務(wù)B)。 *}public class ServiceCImpl implements ServiceC { public void methodC() { (這是服*C)。 }}Test public class Test { public static voi* main(String[] args) { ServiceA sa = new ServiceAImpl()。 Ser*iceB sb = new ServiceBImpl()。 *A()。 ()。 (========)。 //facade Facade facade = new Facade()。 ()。 ()。 }}resu*t 這是服務(wù)A這是*務(wù)B========這是服務(wù)A這是服務(wù)B這是服務(wù)B這是服務(wù)C 享元模式 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1