合作開發用到的幾個 設計模式

2021-09-06 09:10:42 字數 2343 閱讀 5901

自上次的個人版的機房收費系統後, 接下了的就是合作版的開發了.

要求是盡量新增一些設計模式,畢竟自己開發的時候用到的設計模式還是有限的,這次的重點不是在**上.重點是

1 文件驅動;2.專案經理寫文件不能討論;3.分層開發完成完成;4.相對應的文件發給相對應的人,不能把所有文件都

發給乙個人;5.盡量加設計模式;6.svn使用;7.進度控制

針對上述要求,新增了一些設計模式.對於版本控制的問題這裡不細說,後續篇章講解

首先是簡單工廠是工廠類 需要了解所有一些運算的類

他們完成的內容不同,但是都用同乙個介面,就可以用工廠的方法實現

(但不支援增加新產品,可以修改產品的具體方法)

在於簡單工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。

缺點:當需要增加新產品時,需要修改工廠類,不符合開放封閉原則。

策略模式是運用抽象的方法,將具有相同的屬性和功能的物件進行抽象集合成類,如 ,打折 無論是幾折,都是抽象

的.所以策略模式是對演算法的抽象,分別封裝起來,讓他們之間相互替代,演算法的變化,不會影響到使用演算法的客戶.

與簡單工廠相結合,這樣客戶端認識的類就少了,只需要認識contextfacotry就可以了

事例:conetextfactory money=new conetextfactory();

如果不結合那麼簡單工廠就需要認識兩個類,耦合比較大

strategy money= conetextfactory.createcash()客戶端認識了兩個類,strategy和conetextfactory.

模板方法是運用繼承的思想,將所有重複的**都上公升到父類去,而不是讓每個類都去重複.

當我們要完成一些細節層次一致的過程或是一系列步驟,但其個別的步驟在更詳細的層次上實現可能不同時, 我們通常考慮用到模板的方法來處理

例項 多個人作答同樣的卷子,問題都是一樣的,只是每個人的答案有所不同

於是我們就可以用模板的方法,增加虛方法.

如 class test

}我們增加虛方法

public void testquestion1()

protected virtualstring answer1()

然後子類重寫虛方法就可以把答案填上了.其他什麼都不用管了.因為父類建立了所有的重複的模板了

子類有:

clalss testpagera: test

}

若多個學生答題,則只需要修改重寫類的返回值就可以了.方法簡單了好些吧.

所以模板方法也可以說是定義乙個操作的演算法骨架, 將一些步驟延遲到了子類中. 自來可以重新定義演算法的某些

特定步驟.

單列模式i的應用: (singleton)

保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點.

singleton

-instance: singleton

-subgketib()

+getinstance()

密封類sealed的應用

不允許重寫基類的方法

密封類不能被繼承 ,不會重寫基類的方法。

雙重鎖定功能的應用 ,防止多執行緒同時呼叫singleton的getinstance方法,造成建立多個例項

運用lock鎖的方法

private static singleton instance;

private static readonly object syncroot=new object();

private singleton()

{}public static singleton gettinstacne()

if(=null)|}

如果用抽象工廠,那麼這個單例模式是一定要用到了,因為這樣避免了很多的再次建立 工廠了.

可以設定上機準備時間(分鐘)、最少上機時間(分鐘)、遞增時間(分鐘)、固定使用者半小時費用、臨時使用者

每小時費用。學生下機結賬時,如果上機時間在準備時間內這段時間不計費,如果上機時間大於上機時間小於最少

上機時間則按最少上機時間收費,如果上機時間大於最少上機時間,則按遞增時間段收費

當然了,還有先前用到的外觀,抽象工廠加反射的模式.這就不重複了

合作開發的要求

時間相對集中的假期,我 海芳 寶強要進行機房收費系統的合作開發了。開發之前,老師對我們做出了這樣的要求 一 使用cvs,通過版本控制系統進行合作開發。使用cvs是多人合作開發的基本要求,cvs使得參與專案的每個人能對專案有整體的了解和把控,每個開發人員能進行良好 高效的合作開發。乙個版本控制系統保持...

合作開發的要求

時間相對集中的假期,我 海芳 寶強要進行機房收費系統的合作開發了。開發之前,老師對我們做出了這樣的要求 一 使用cvs,通過版本控制系統進行合作開發。使用cvs是多人合作開發的基本要求,cvs使得參與專案的每個人能對專案有整體的了解和把控,每個開發人員能進行良好 高效的合作開發。乙個版本控制系統保持...

談談我們的合作開發

經過十幾天的努力,合作的機房收費系統終於完工了,在這裡分享一下合作開發的經驗和收穫。小崔,長海,楊元,大帥,還有我 我們一起合作開發機房收費系統,我負責系統架構設計,長海負責介面層,小崔負責業務邏輯層,楊元和大帥負責d層 有各自的分工 首先 資料庫的設計 這個階段收穫很大,先前自己設計的資料庫幾乎沒...