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

下載本文檔

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

文檔簡介

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

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

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

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

5、n:被調(diào)用的單件對象。在單件模式中,通常由Instance(或GetInstance)方法負(fù)責(zé)對象的創(chuàng)建,該方法應(yīng)保證每個需要(單件)對象的客戶端均能訪問它。2.1.4單件模式在本程序中的應(yīng)用與理解在服裝定制系統(tǒng)中,單件模式主要用于數(shù)據(jù)庫部分。該類的基本結(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類的類名為Connection。通過getConn()方法獲得該類的對象,保證了該類只有一個唯一實例。Mylock是為了多線程安全所做的一個object對象。通過Insert()方法可以向數(shù)據(jù)庫插入客戶基本信息以及客戶訂購的服裝信息,通過change()方法,客戶可以在登錄該系統(tǒng)后修改自己的用戶名和密碼。通過單件模式的使用,我們深刻地體會

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

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

9、創(chuàng)建一個Product對象。ConcreteFactory具體的工廠角色,創(chuàng)建具體產(chǎn)品的子工廠,重寫工廠方法以返回一個ConcreteProduct實例。Product產(chǎn)品角色,定義工廠方法所創(chuàng)建的對象的接口。ConcreteProduct具體產(chǎn)品角色,實現(xiàn)Product接口。在工廠模式中,產(chǎn)品的創(chuàng)建都是由ConcreteFactory來完成的,通常每個ConcreteFactory負(fù)責(zé)一種具體產(chǎn)品的創(chuàng)建,各個子工廠之間相互獨立、職責(zé)明確、互不影響。2.2.4工廠模式在本程序中的應(yīng)用與理解:在本系統(tǒng)中,工廠模式用于的功能點為生產(chǎn)上衣和褲子,具體相關(guān)類的基本結(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類是所有衣服的父類,Up和Down分別為上衣和褲子,是AbsClothes的子類。IFactory類為所有具體工廠的抽象類,UpFac和DownFac為IFactory的子類,是生產(chǎn)上衣和褲子的具體工廠。當(dāng)每次系統(tǒng)想獲得上衣或褲子的具體對象時,不是在主程序中直接用new來生成Up和Down的對象,而是通過調(diào)用UpFac和DownFac的Crea

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

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

14、明確他所創(chuàng)建的表示。提供一個檢索產(chǎn)品的接口。Director-構(gòu)造一個使用Builder接口的對象。Product-表示被構(gòu)造的復(fù)雜對象。ConcreteBuilder創(chuàng)建該對象的內(nèi)部表示并定義它的裝配過程。包含定義組成部件的類,包括將這些部件裝配成最終的產(chǎn)品的接口。2.3.4建造者模式在本程序中的應(yīng)用與理解:建造者模式在本系統(tǒng)中所應(yīng)用的模塊為創(chuàng)建成套的衣服,包括上衣和褲子,具體相關(guān)類的結(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類為建造者的抽象類,HighQ,MiddleQ,以及LowQ為Builder的子類,為具體的建造者,分別代表生產(chǎn)高檔套裝,中檔套裝以及低檔套裝。套裝類Taozhuang有三個主屬性,分別是上衣shirt,褲子trousers和價格price,建造者Builder有兩個方法,MadeShirt()方法用于生產(chǎn)上衣,MadeTrousers()方法用于生產(chǎn)褲子。Director類調(diào)用Builder類的兩個方法,用于生產(chǎn)套裝產(chǎn)品。建造者模式在生成某一類有相同生產(chǎn)流程,但具體方法不同的產(chǎn)品或?qū)ο笊暇哂蟹浅V匾淖饔?,使用建造者模式可以使得在產(chǎn)生新的產(chǎn)品生產(chǎn)方法時,簡單的擴(kuò)充進(jìn)來,而源程序不需要做任何更改,這也是符合面向?qū)ο蟪绦蛟O(shè)計的“開閉”原則的,有了建造者模式,程序可是方便的以較小的成本擴(kuò)充新的功能。通過使用建造者模式,我們深刻的體會到了它的重要意義以及適用范圍:(1)需要生成的產(chǎn)品對象有復(fù)雜的內(nèi)部結(jié)構(gòu)

溫馨提示

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

最新文檔

評論

0/150

提交評論