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

正文內(nèi)容

[計算機軟件及應(yīng)用]設(shè)計模式-展示頁

2025-01-25 07:20本頁面
  

【正文】 summary /// 定義Context的初始狀態(tài) /// /summary /// param name=state/param public Context(State state) { = state。4. 模式解讀   狀態(tài)模式的類圖     狀態(tài)模式的代碼實現(xiàn) /// summary /// Context類,維護(hù)一個ConcreteState子類的實例,這個實例定義當(dāng)前的狀態(tài)。   抽象狀態(tài)(State):定義一個接口以封裝使用上下文環(huán)境的的一個特定狀態(tài)相關(guān)的行為。把狀態(tài)的判斷邏輯轉(zhuǎn)移到表示不同的一系列類當(dāng)中,可以把復(fù)雜的邏輯判斷簡單化。 狀態(tài)模式1. 概述  當(dāng)一個對象的內(nèi)在狀態(tài)改變時允許改變其行為,這個對象看起來像是改變了其類。如多態(tài)計算機可以共享同一個顯示器。如計算機與顯示器的關(guān)系就是聚集關(guān)系,因為顯示器是計算機的一部分。關(guān)聯(lián)關(guān)系所涉及的兩個對象是處在同一個層次上的,比如程序員和計算機的關(guān)系就是一種關(guān)聯(lián)關(guān)系,而不是聚合關(guān)系,因為程序員不是由計算機組成的。)。 rightWing = new Wing()。 private Wing rightWing。如上例:鷹擁有一對翅膀,它的翅膀不能同時屬于別的鷹。 } } public class Computer { /// summary /// 通過字段表示聚合關(guān)系 /// /summary private Displayer displayer。例如:電腦與顯示器的關(guān)系,就是整體與部分的關(guān)系,即聚合關(guān)系                  代碼表現(xiàn),也是通過實例字段或?qū)傩詠韺崿F(xiàn)       public class Displayer { /// summary /// 顯示器型號 /// /summary public string Model { get。 } } public class Company { /// summary /// 一個公司可以有多個員工 /// /summary private Emplolyee[] employees。例如:公司與員工的關(guān)系                  代碼表現(xiàn),通過實例字段或?qū)傩詠韺崿F(xiàn) public class Emplolyee {        public string Name{ get。)。 }      3)靜態(tài)方法調(diào)用 /// summary /// 在方法中調(diào)用靜態(tài)方法 /// /summary public void Test() { ()。 } }      2)在方法內(nèi)部定義     /// summary /// 動物依賴空氣才能呼吸,在方法內(nèi)部實例化新對象 /// /summary public void Breathe() { Air air = new Air()。表示依賴關(guān)系的代碼有以下幾種      1)作為參數(shù) public class Air { public void GetOxygen() { (Get oxygen from air.)。下面來介紹UML類圖中的關(guān)系           依賴關(guān)系(Dependency),用虛線加箭頭表示?!   ?面向?qū)ο笕筇卣鳎悍庋b、繼承、多態(tài)     類與實例     構(gòu)造(析構(gòu))方法     重載     訪問修飾符     屬性/字段/方法     抽象類     接口    因此,對于一個開發(fā)者來說,學(xué)習(xí)設(shè)計模式是非常必要的。如果你是最初的設(shè)計者,那么也需要應(yīng)用設(shè)計模式來找到一個最優(yōu)方案。設(shè)計中往往會存在設(shè)計缺陷,這些缺陷包括:    僵化性:難以對軟件進(jìn)行改動,即使在功能上來看是很小的改動    脆弱性:在進(jìn)行很小的改動時,可能導(dǎo)致很多地方出現(xiàn)問題    頑固性:要把系統(tǒng)中某些通用的功能分離出來的努力和風(fēng)險非常巨大    粘滯性:當(dāng)面臨改動時,改動的方案有很多,一些會保持設(shè)計,一些會破壞設(shè)計,當(dāng)采用保持設(shè)計的方法比用破壞設(shè)計的方法更難應(yīng)付變化時,說明原設(shè)計具有較高的粘滯性    晦澀性:模塊難以理解    不必要的重復(fù):代碼不能復(fù)用,往往通過CopyPaste來實現(xiàn)相似功能    不必要的復(fù)雜性:設(shè)計中包含了沒有用的成分,往往是過度設(shè)計導(dǎo)致的  實現(xiàn)同一個功能的方法有很多,哪個設(shè)計容易擴展,容易復(fù)用,松耦合,可維護(hù)?設(shè)計模式指導(dǎo)我們找到最優(yōu)方案。目錄設(shè)計模式準(zhǔn)備篇 2狀態(tài)模式 8觀察者模式 15命令模式 30外觀模式 40模版方法模式 48適配器模式 57組合模式 61橋接模式 68代理模式 75裝飾模式 80策略模式 88簡單工廠模式 96工廠方法模式 101單例模式 105原型模式 109建造者模式 117抽象工廠模式 123 設(shè)計模式準(zhǔn)備篇1. 設(shè)計模式的重要性  設(shè)計模式解決的是在軟件過程中如何來實現(xiàn)具體的軟件功能?! ∪绻阌X得在開發(fā)過程中發(fā)現(xiàn)以上問題(缺陷),那么就需要使用設(shè)計模式來改善最初設(shè)計,即重構(gòu)原有的設(shè)計。設(shè)計模式不是編程語言,它修煉的是程序員的內(nèi)功。2. 對于初學(xué)者來說,必要的知識準(zhǔn)備還是必須的,沒有這些基礎(chǔ)就很難將這些理解透徹。面向?qū)ο蠡局R  設(shè)計模式是面向?qū)ο缶幊痰脑O(shè)計指導(dǎo),因此學(xué)習(xí)設(shè)計模式前先要理解什么是面向?qū)ο?,這里只簡單列出了面向?qū)ο蟮闹饕拍?,要是初學(xué)者的話還得查閱相關(guān)資料;對已經(jīng)了解的老手來說,權(quán)當(dāng)復(fù)習(xí)和梳理一下吧。UML類圖  在學(xué)習(xí)設(shè)計模式時,通常接觸到的只有類圖,因此讀懂UML類圖對理解模式來說有很大幫助。如上圖動物(Animal)依賴空氣(Air)。 } } public abstract class Animal { /// summary /// 動物依賴空氣才能呼吸,作為參數(shù)傳入 /// /summary /// param name=air/param public void Breathe(Air air) { ()。 ()。 }     繼承關(guān)系(Inherit),用實線加空心箭頭表示,如上圖鷹(Eagle)繼承自動物(Animal)     /// summary /// 鷹繼承自Animal /// /summary public class Eagle : Animal { }     實現(xiàn)關(guān)系(Realize),用虛線加空心箭頭表示,如上圖鷹(Eagle)實現(xiàn)了飛行能力(IFlyAble)     /// summary /// 鷹繼承自Animal /// /summary public class Eagle : Animal, IFlyAble {        //實現(xiàn)IFlyAble接口中定義的方法 public void Fly() { (老鷹可以飛翔。 } }     組合關(guān)系,講組合關(guān)系之前不得不談關(guān)聯(lián)關(guān)系與聚合關(guān)系      1)關(guān)聯(lián)關(guān)系(Association):對于兩個相對獨立的對象,當(dāng)一個對象實例與另一個對象的一些特定實例存在固定的對應(yīng)關(guān)系時,這兩個對象之間的關(guān)系為關(guān)聯(lián)關(guān)系。 set。 }      2) 聚合關(guān)系(Aggregate): 是關(guān)聯(lián)關(guān)系的一種,是一種較強的關(guān)聯(lián)關(guān)系,強調(diào)整體與部分之間的關(guān)系。 set。 }      3)組合關(guān)系,組合關(guān)系是聚合的一種特殊形式,表示一個所有物實例不能同時被兩個所有物所擁有?!     〈a表現(xiàn),也是通過實例字段或?qū)傩詠韺崿F(xiàn)       public class Wing { } /// summary /// 鷹繼承自Animal /// /summary public class Eagle : Animal, IFlyAble { private Wing leftWing。 public Eagle() { // 在構(gòu)造函數(shù)中實例化翅膀,防止翅膀被改變 leftWing = new Wing()。 } public void Fly() { (老鷹可以飛翔。 } }      關(guān)聯(lián)關(guān)系與聚合關(guān)系的區(qū)別:聚合關(guān)系涉及的兩個對象處于不平等的層次上,一個代表整體,一個代表部分?!     【酆详P(guān)系與組合關(guān)系的區(qū)別:聚合關(guān)系中處于被持有的對象,可以被別的對象所持有。組合關(guān)系中被持有的對象只能被一個對象引用,不能共享給其它對象;而且被持有的對象的生命周期也由所有者控制,當(dāng)所有者析構(gòu)了,其所有物必須隨著它一起析構(gòu)。2. 解決的問題  主要解決的是當(dāng)控制一個對象狀態(tài)轉(zhuǎn)換的條件表達(dá)式過于復(fù)雜時的情況。3. 模式中的角色   上下文環(huán)境(Context):它定義了客戶程序需要的接口并維護(hù)一個具體狀態(tài)角色的實例,將與狀態(tài)相關(guān)的操作委托給當(dāng)前的Concrete State對象來處理?! ?具體狀態(tài)(Concrete State):實現(xiàn)抽象狀態(tài)定義的接口。 /// /summary public class Context { private State state。 } /// summary /// 可讀寫的狀態(tài)屬性,用于讀取和設(shè)置新狀態(tài) /// /summary public State State { get { return state。 } } /// summary /// 對請求做處理,并設(shè)置下一個狀態(tài) /// /summary public void Request() { (this)。 } /// summary /// 具體狀態(tài)類,每一個子類實現(xiàn)一個與Context的一個狀態(tài)相關(guān)的行為 /// /summary public class ConcreteStateA : State { /// summary /// 設(shè)置ConcreteStateA的下一個狀態(tài)是ConcreteStateB /// /summary /// param name=context/param public override void Handle(Context context) { (當(dāng)前狀態(tài)是 A.)。 } } public class ConcreteStateB : State { /// summary /// 設(shè)置ConcreteStateB的下一個狀態(tài)是ConcreteSateA //
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1