軟件設(shè)計(jì)大作業(yè)(共11頁(yè))_第1頁(yè)
軟件設(shè)計(jì)大作業(yè)(共11頁(yè))_第2頁(yè)
軟件設(shè)計(jì)大作業(yè)(共11頁(yè))_第3頁(yè)
軟件設(shè)計(jì)大作業(yè)(共11頁(yè))_第4頁(yè)
軟件設(shè)計(jì)大作業(yè)(共11頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上一 需求分析此系統(tǒng)是一個(gè)類(lèi)似于淘寶網(wǎng)的在線(xiàn)衣服銷(xiāo)售系統(tǒng),相當(dāng)于淘寶網(wǎng)上的一個(gè)專(zhuān)門(mén)買(mǎi)衣服的網(wǎng)店,它具有用戶(hù)注冊(cè),用戶(hù)登錄,修改密碼,顯示系統(tǒng)功能,查看訂購(gòu)歷史以及訂貨。1.1 需求列表:(1) 用戶(hù)管理:用戶(hù)管理的需求包括用戶(hù)注冊(cè),用戶(hù)登錄以及修改密碼。用戶(hù)注冊(cè)是添加一個(gè)我們網(wǎng)上衣店的新用戶(hù);用戶(hù)登錄是用戶(hù)想要進(jìn)入系統(tǒng)時(shí)必須采取驗(yàn)證身份的步驟;修改密碼是為了用戶(hù)的安全性考慮,當(dāng)密碼存在不安全的因素時(shí),適時(shí)修改密碼。(2) 商品衣服的管理:商品管理包括訂購(gòu)衣服和查看訂購(gòu)衣服的歷史。訂購(gòu)衣服是當(dāng)我們衣店的庫(kù)存數(shù)量不足時(shí)必須采取的;查看訂購(gòu)衣服的歷史有助于我們更好地了解衣服的

2、訂購(gòu)情況。(3) 顯示系統(tǒng)功能:此功能是用來(lái)讓用戶(hù)能很清楚地了解此系統(tǒng)所實(shí)現(xiàn)的各種功能。1.2 系統(tǒng)用例圖:1.3 用例分析及場(chǎng)景描述:用戶(hù)注冊(cè)用例:這部分主要是新用戶(hù)進(jìn)行注冊(cè)的過(guò)程,首先用戶(hù)進(jìn)入到注冊(cè)頁(yè)面,填寫(xiě)注冊(cè)信息并提交,如果無(wú)誤的話(huà)系統(tǒng)會(huì)給予注冊(cè)成功的提示,如果注冊(cè)失敗會(huì)提示注冊(cè)失敗信息。用戶(hù)登錄用例:此功能模塊針對(duì)的對(duì)象是本網(wǎng)站的會(huì)員既已經(jīng)注冊(cè)的會(huì)員,會(huì)員首先填寫(xiě)用戶(hù)名和密碼,然后點(diǎn)擊登錄按鈕,如果網(wǎng)站數(shù)據(jù)庫(kù)中存在此會(huì)員并且密碼正確則提示登錄成功提示,如果網(wǎng)站不存在此用戶(hù)或密碼不正確,系統(tǒng)會(huì)提示用戶(hù)登錄失敗。修改密碼用例:此用例針對(duì)注冊(cè)會(huì)員進(jìn)行操作。用戶(hù)登錄成功會(huì)可以進(jìn)入網(wǎng)站主頁(yè)面,

3、如果用戶(hù)想修改密碼的話(huà)可以單擊修改密碼按鈕,進(jìn)行密碼修改,用戶(hù)輸入新密碼單擊修改按鈕即可完成密碼修改。顯示系統(tǒng)功能用例:此功能針對(duì)注冊(cè)會(huì)員,會(huì)員首先登錄到網(wǎng)站,進(jìn)入主頁(yè),主頁(yè)會(huì)有相關(guān)操作的按鈕,顯示系統(tǒng)所提供給會(huì)員操作的功能,用戶(hù)可以針對(duì)自己的需要選擇系統(tǒng)提供的功能。訂貨衣服用例:此功能針對(duì)注冊(cè)登錄會(huì)員,網(wǎng)站提供兩種訂購(gòu)方案:?jiǎn)渭嗁?gòu)和定制套裝。用戶(hù)可以根據(jù)自己的需求來(lái)選擇。單件訂購(gòu)方案:用戶(hù)選擇是上衣還是褲子,并填寫(xiě)訂購(gòu)的數(shù)量,確認(rèn)無(wú)誤后單擊訂購(gòu)按鈕即可,如果訂購(gòu)成功,系統(tǒng)會(huì)提示訂購(gòu)成功,失敗則會(huì)提示訂購(gòu)失敗。定制套裝方案:用戶(hù)選擇定制套裝的檔次(高、中、低),并填寫(xiě)訂購(gòu)的數(shù)量,確認(rèn)無(wú)誤后單

4、擊訂購(gòu)按鈕即可,如果訂購(gòu)成功,系統(tǒng)會(huì)提示訂購(gòu)成功,失敗則會(huì)提示訂購(gòu)失敗。顯示訂購(gòu)歷史用例:此功能針對(duì)注冊(cè)會(huì)員,用戶(hù)登錄到系統(tǒng)后,主頁(yè)顯示系統(tǒng)功能中包括歷史查看選項(xiàng),用戶(hù)可以單擊進(jìn)入歷史交易記錄頁(yè)面,頁(yè)面將顯示用戶(hù)所有的交易記錄。二 設(shè)計(jì)模式2.1單件模式2.1.1單件模式的定義讓類(lèi)自身負(fù)責(zé)保存它的唯一實(shí)例,這個(gè)類(lèi)可以保證沒(méi)有其他實(shí)例可以被創(chuàng)建(通過(guò)截取創(chuàng)建新對(duì)象的請(qǐng)求),并且它可以提供一個(gè)訪(fǎng)問(wèn)該實(shí)例的方法。這就是單件模式。2.1.2單件設(shè)計(jì)模式的意圖單件模式保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪(fǎng)問(wèn)它的全局訪(fǎng)問(wèn)點(diǎn)。2.1.3單件設(shè)計(jì)模式的結(jié)構(gòu)單件模式的結(jié)構(gòu)進(jìn)包括Singleton。Singleto

5、n:被調(diào)用的單件對(duì)象。在單件模式中,通常由Instance(或GetInstance)方法負(fù)責(zé)對(duì)象的創(chuàng)建,該方法應(yīng)保證每個(gè)需要(單件)對(duì)象的客戶(hù)端均能訪(fǎng)問(wèn)它。2.1.4單件模式在本程序中的應(yīng)用與理解在服裝定制系統(tǒng)中,單件模式主要用于數(shù)據(jù)庫(kù)部分。該類(lèi)的基本結(jié)構(gòu)如下:public class Connection private static Connection newConn; private static readonly object mylock=new object(); private Connection() public static Connection getConn();

6、public int Insert(string str); public int Insert(string Name, string Pwd); public int Change(string Pwd,int ID);本程序中單件模式的Singleton類(lèi)的類(lèi)名為Connection。通過(guò)getConn()方法獲得該類(lèi)的對(duì)象,保證了該類(lèi)只有一個(gè)唯一實(shí)例。Mylock是為了多線(xiàn)程安全所做的一個(gè)object對(duì)象。通過(guò)Insert()方法可以向數(shù)據(jù)庫(kù)插入客戶(hù)基本信息以及客戶(hù)訂購(gòu)的服裝信息,通過(guò)change()方法,客戶(hù)可以在登錄該系統(tǒng)后修改自己的用戶(hù)名和密碼。通過(guò)單件模式的使用,我們深刻地體會(huì)

7、到了單件模式的作用和適用范圍:(1) 當(dāng)類(lèi)只能有一個(gè)實(shí)例并且用戶(hù)可以從一個(gè)眾所周知的訪(fǎng)問(wèn)點(diǎn)來(lái)訪(fǎng)問(wèn)它時(shí)。(2) 當(dāng)這個(gè)唯一實(shí)例應(yīng)該是通過(guò)子類(lèi)化可擴(kuò)展的,并且客戶(hù)應(yīng)該無(wú)需更改代碼就能使用一個(gè)擴(kuò)展的實(shí)例時(shí)。2.2工廠(chǎng)模式2.2.1工廠(chǎng)模式的定義:工程模式是一種經(jīng)常被用到的模式,根據(jù)工廠(chǎng)模式實(shí)現(xiàn)的類(lèi)可以根據(jù)提供的類(lèi)生成一組類(lèi)中的某一類(lèi)的實(shí)例,通常這一組類(lèi)有一個(gè)公共的抽象父類(lèi),并且實(shí)現(xiàn)了相同的方法,但是這些方法對(duì)不同的數(shù)據(jù)進(jìn)行了不同的操作。首先需要定義一個(gè)基類(lèi),該類(lèi)的子類(lèi)通過(guò)不同的方法實(shí)現(xiàn)了基類(lèi)中的方法。然后需要定義一個(gè)工廠(chǎng)類(lèi),工廠(chǎng)類(lèi)可以通過(guò)條件生成不同的子類(lèi)實(shí)例。當(dāng)?shù)玫阶宇?lèi)的實(shí)例后,開(kāi)發(fā)人員可以調(diào)用基

8、類(lèi)中的方法而不用考慮返回的是哪個(gè)子類(lèi)的實(shí)例。2.2.2工廠(chǎng)模式的意圖:工廠(chǎng)模式又稱(chēng)虛構(gòu)造機(jī)(Virtual Constructor)。它定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類(lèi)決定實(shí)例化那一個(gè)類(lèi)。工程模式使一個(gè)類(lèi)的實(shí)例化延遲到其子類(lèi)。2.2.3工廠(chǎng)模式的結(jié)構(gòu):(結(jié)構(gòu)圖)工廠(chǎng)模式的結(jié)構(gòu)包括 Factory、ConcreteFactory、Product和ConcreteProduct四部分,其中:Factory“抽象的工廠(chǎng)”角色,聲明工廠(chǎng)的方法,該方法返回一個(gè)Product類(lèi)型的對(duì)象。Factory也可以定義一個(gè)工廠(chǎng)方法的默認(rèn)實(shí)現(xiàn),它返回一個(gè)默認(rèn)的ConcreteProduct對(duì)象??梢哉{(diào)用工廠(chǎng)方法以

9、創(chuàng)建一個(gè)Product對(duì)象。ConcreteFactory具體的工廠(chǎng)角色,創(chuàng)建具體產(chǎn)品的子工廠(chǎng),重寫(xiě)工廠(chǎng)方法以返回一個(gè)ConcreteProduct實(shí)例。Product產(chǎn)品角色,定義工廠(chǎng)方法所創(chuàng)建的對(duì)象的接口。ConcreteProduct具體產(chǎn)品角色,實(shí)現(xiàn)Product接口。在工廠(chǎng)模式中,產(chǎn)品的創(chuàng)建都是由ConcreteFactory來(lái)完成的,通常每個(gè)ConcreteFactory負(fù)責(zé)一種具體產(chǎn)品的創(chuàng)建,各個(gè)子工廠(chǎng)之間相互獨(dú)立、職責(zé)明確、互不影響。2.2.4工廠(chǎng)模式在本程序中的應(yīng)用與理解:在本系統(tǒng)中,工廠(chǎng)模式用于的功能點(diǎn)為生產(chǎn)上衣和褲子,具體相關(guān)類(lèi)的基本結(jié)構(gòu)如下:public abstrac

10、t class AbsClothes public abstract bool add(int ID, int Num, int Price);public interface IFactory AbsClothes CreateClothes();public class Up:AbsClothes public override bool add(int ID, int Num, int Price);public class Down : AbsClothes public override bool add(int ID, int Num, int Price);public clas

11、s UpFac : IFactory public AbsClothes CreateClothes();public class DownFac:IFactory public AbsClothes CreateClothes();AbsClothes類(lèi)是所有衣服的父類(lèi),Up和Down分別為上衣和褲子,是AbsClothes的子類(lèi)。IFactory類(lèi)為所有具體工廠(chǎng)的抽象類(lèi),UpFac和DownFac為IFactory的子類(lèi),是生產(chǎn)上衣和褲子的具體工廠(chǎng)。當(dāng)每次系統(tǒng)想獲得上衣或褲子的具體對(duì)象時(shí),不是在主程序中直接用new來(lái)生成Up和Down的對(duì)象,而是通過(guò)調(diào)用UpFac和DownFac的Crea

12、teClothes方法來(lái)生成。由于AbsClothes和IFactory作為抽象父類(lèi),當(dāng)有新產(chǎn)品要添加的時(shí)候可以通過(guò)繼承這兩個(gè)父類(lèi)來(lái)實(shí)現(xiàn)新產(chǎn)品的擴(kuò)充,而原來(lái)的程序不用做出任何修改,這是符合面向?qū)ο蟪绦蛟O(shè)計(jì)的“開(kāi)閉”原則的。通過(guò)這次使用工廠(chǎng)模式,我們更加深刻的體會(huì)到了工廠(chǎng)模式的作用和適用范圍:(1) 當(dāng)一個(gè)類(lèi)不知道它所必須創(chuàng)建的對(duì)象的類(lèi)信息的時(shí)候。(2) 當(dāng)一個(gè)類(lèi)希望由它的子類(lèi)來(lái)指定它所創(chuàng)建的對(duì)象的時(shí)候。(3)當(dāng)類(lèi)將創(chuàng)建的對(duì)象的職責(zé)委托給多個(gè)幫助子類(lèi)中的一個(gè),并且希望將哪一個(gè)幫助子類(lèi)是代理者這一信息局部化的時(shí)候。2.3建造者模式2.3.1建造者模式的定義建造者模式用來(lái)創(chuàng)建復(fù)合對(duì)象,并把復(fù)合對(duì)象的

13、創(chuàng)建過(guò)程加以抽象,通過(guò)子類(lèi)繼承和重載的方式,動(dòng)態(tài)地創(chuàng)建具有復(fù)合屬性的對(duì)象;另一方面,為了統(tǒng)一創(chuàng)建過(guò)程,又把對(duì)象創(chuàng)建的操作統(tǒng)一封裝在名為Director所提供的方法里。2.3.2建造者模式的意圖將一個(gè)復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。2.3.3建造者模式的結(jié)構(gòu)建造者模式結(jié)構(gòu)圖從圖中可以看出,建造者模式的結(jié)構(gòu)包括四個(gè)部分:Builder, ConcreteBuilder, Director和Product。其中:Builder-為創(chuàng)建一個(gè)Product對(duì)象的各個(gè)部分指定抽象接口。ConcreteBuilder-實(shí)現(xiàn)Builder接口以構(gòu)造和裝配該產(chǎn)品的各個(gè)部件。定義并

14、明確他所創(chuàng)建的表示。提供一個(gè)檢索產(chǎn)品的接口。Director-構(gòu)造一個(gè)使用Builder接口的對(duì)象。Product-表示被構(gòu)造的復(fù)雜對(duì)象。ConcreteBuilder創(chuàng)建該對(duì)象的內(nèi)部表示并定義它的裝配過(guò)程。包含定義組成部件的類(lèi),包括將這些部件裝配成最終的產(chǎn)品的接口。2.3.4建造者模式在本程序中的應(yīng)用與理解:建造者模式在本系統(tǒng)中所應(yīng)用的模塊為創(chuàng)建成套的衣服,包括上衣和褲子,具體相關(guān)類(lèi)的結(jié)構(gòu)如下所示:public class Director public void Construct(Builder builder);public abstract class Builder public

15、abstract void MadeShirt(); public abstract void MadeTrousers(); public abstract Taozhuang GetTao();public class Taozhuang private string shirt; public string Shirt get return shirt; set shirt = value; private string trousers; public string Trousers get return trousers; set trousers = value; private

16、int price; public int Price get return price; set price = value; public bool add(int ID,int Num);public class HighQ:Builder private Taozhuang HQ = new Taozhuang(); public override void MadeShirt(); public override void MadeTrousers(); public override Taozhuang GetTao();public class MiddleQ : Builder

17、 private Taozhuang MQ = new Taozhuang(); public override void MadeShirt(); public override void MadeTrousers(); public override Taozhuang GetTao();public class LowQ : Builder private Taozhuang LQ = new Taozhuang(); public override void MadeShirt(); public override void MadeTrousers(); public overrid

18、e Taozhuang GetTao();Builder類(lèi)為建造者的抽象類(lèi),HighQ,MiddleQ,以及LowQ為Builder的子類(lèi),為具體的建造者,分別代表生產(chǎn)高檔套裝,中檔套裝以及低檔套裝。套裝類(lèi)Taozhuang有三個(gè)主屬性,分別是上衣shirt,褲子trousers和價(jià)格price,建造者Builder有兩個(gè)方法,MadeShirt()方法用于生產(chǎn)上衣,MadeTrousers()方法用于生產(chǎn)褲子。Director類(lèi)調(diào)用Builder類(lèi)的兩個(gè)方法,用于生產(chǎn)套裝產(chǎn)品。建造者模式在生成某一類(lèi)有相同生產(chǎn)流程,但具體方法不同的產(chǎn)品或?qū)ο笊暇哂蟹浅V匾淖饔?,使用建造者模式可以使得在產(chǎn)生新的產(chǎn)品生產(chǎn)方法時(shí),簡(jiǎn)單的擴(kuò)充進(jìn)來(lái),而源程序不需要做任何更改,這也是符合面向?qū)ο蟪绦蛟O(shè)計(jì)的“開(kāi)閉”原則的,有了建造者模式,程序可是方便的以較小的成本擴(kuò)充新的功能。通過(guò)使用建造者模式,我們深刻的體會(huì)到了它的重要意義以及適用范圍:(1)需要生成的產(chǎn)品對(duì)象有復(fù)雜的內(nèi)部結(jié)構(gòu)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論