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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

一 需求分析此系統(tǒng)是一個類似于淘寶網的在線衣服銷售系統(tǒng),相當于淘寶網上的一個專門買衣服的網店,它具有用戶注冊,用戶登錄,修改密碼,顯示系統(tǒng)功能,查看訂購 歷史以及訂貨。1.1 需求列表:(1) 用戶管理:用戶管理的需求包括用戶注冊,用戶登錄以及修改密碼。用戶注冊是添加一個我們網上衣店的新用戶;用戶登錄是用戶想要進入系統(tǒng)時必須采取驗證身份的步驟;修改密碼是為了用戶的安全性考慮,當密碼存在不安全的因素時,適時修改密碼。(2) 商品衣服的管理:商品管理包括訂購衣服和查看訂購衣服的歷史。訂購衣服是當我們衣店的庫存數量不足時必須采取的;查看訂購衣服的歷史有助于我們更好地了解衣服的訂購情況。(3) 顯示系統(tǒng)功能:此功能是用來讓用戶能很清楚地了解此系統(tǒng)所實現的各種功能。1.2 系統(tǒng)用例圖:精品資料用戶注冊用戶登錄修改密碼用戶顯示系統(tǒng)功能訂購衣服查看訂購歷史1.3 用例分析及場景描述: 用戶注冊用例:這部分主要是新用戶進行注冊的過程,首先用戶進入到注冊頁面,填寫注冊信息并提交,如果無誤的話系統(tǒng)會給予注冊成功的提示,如果注冊失敗會提示注冊失敗信息。用戶登錄用例:此功能模塊針對的對象是本網站的會員既已經注冊的會員,會員首先填寫用戶名和密碼,然后點擊登錄按鈕,如果網站數據庫中存在此會員并且密碼正確則提示登錄成功提示,如果網站不存在此用戶或密碼不正確,系統(tǒng)會提示用戶登錄失敗。修改密碼用例:此用例針對注冊會員進行操作。用戶登錄成功會可以進入網站主頁面, 如果用戶想修改密碼的話可以單擊修改密碼按鈕,進行密碼修改,用戶輸入新密碼單擊修改按鈕即可完成密碼修改。顯示系統(tǒng)功能用例:此功能針對注冊會員,會員首先登錄到網站,進入主頁,主頁會有相關操作的按鈕,顯示系統(tǒng)所提供給會員操作的功能,用戶可以針對自己的需要選擇系統(tǒng)提供的功能。訂貨衣服用例:此功能針對注冊登錄會員,網站提供兩種訂購方案:單件訂購和定制套裝。用戶可以根據自己的需求來選擇。單件訂購方案:用戶選擇是上衣還是褲子,并填寫訂購的數量,確認無誤后單擊訂購按鈕即可,如果訂購成功,系統(tǒng)會提示訂購成功,失敗則會提示訂購失敗。定制套裝方案:用戶選擇定制套裝的檔次(高、中、低) ,并填寫訂購的數量,確認無誤后單擊訂購按鈕即可, 如果訂購成功, 系統(tǒng)會提示訂購成功, 失敗則會提示訂購失敗。顯示訂購歷史用例:此功能針對注冊會員,用戶登錄到系統(tǒng)后,主頁顯示系統(tǒng)功能中包括歷史查看選項,用戶可以單擊進入歷史交易記錄頁面,頁面將顯示用戶所有的交易記錄。二 設計模式2.1 單件模式2.1.1 單件模式的定義讓類自身負責保存它的唯一實例,這個類可以保證沒有其他實例可以被創(chuàng)建(通過截取創(chuàng)建新對象的請求) ,并且它可以提供一個訪問該實例的方法。這就是單件模式。2.1.2 單件設計模式的意圖單件模式保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。2.1.3 單件設計模式的結構singleton patternsingleton-_instance+instance()單件模式結構圖單件模式的結構進包括singleton 。singleton :被調用的單件對象。在單件模式中,通常由instance (或 getinstance )方法負責對象的創(chuàng)建, 該方法應保證每個需要(單件)對象的客戶端均能訪問它。2.1.4 單件模式在本程序中的應用與理解在服裝定制系統(tǒng)中,單件模式主要用于數據庫部分。該類的基本結構如下:public class connectionprivate static connection newconn;private static readonly object mylock=new object();private connection() public static connection getconn();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() 方法可以向數據庫插入客戶基本信息以及客戶訂購的服裝信息,通過change() 方法,客戶可以在登錄該系統(tǒng)后修改自己的用戶名和密碼。通過單件模式的使用,我們深刻地體會到了單件模式的作用和適用范圍:(1) ) 當類只能有一個實例并且用戶可以從一個眾所周知的訪問點來訪問它時。(2) ) 當這個唯一實例應該是通過子類化可擴展的,并且客戶應該無需更改代碼就能使用一個擴展的實例時。2.2 工廠模式2.2.1 工廠模式的定義:工程模式是一種經常被用到的模式,根據工廠模式實現的類可以根據提 供的類生成一組類中的某一類的實例,通常這一組類有一個公共的抽象父類, 并且實現了相同的方法,但是這些方法對不同的數據進行了不同的操作。首 先需要定義一個基類,該類的子類通過不同的方法實現了基類中的方法。然 后需要定義一個工廠類,工廠類可以通過條件生成不同的子類實例。當得到 子類的實例后,開發(fā)人員可以調用基類中的方法而不用考慮返回的是哪個子 類的實例。2.2.2 工廠模式的意圖:工廠模式又稱虛構造機(virtualconstructor )。它定義一個用于創(chuàng)建對象的接口,讓子類決定實例化那一個類。工程模式使一個類的實例化延遲到 其子類。2.2.3 工廠模式的結構:(結構圖)工 廠 模 式 的 結 構 包 括factory 、 concretefactory、 product和concreteproduct四部分,其中:factory “抽象的工廠”角色,聲明工廠的方法,該方法返回一個product 類型的對象。 factory 也可以定義一個工廠方法的默認實現,它返回一個默認的 concreteproduct對象。可以調用工廠方法以創(chuàng)建一個product對象。concretefactory 具體的工廠角色, 創(chuàng)建具體產品的子工廠, 重寫工廠方法以返回一個concreteproduct實例。product 產品角色,定義工廠方法所創(chuàng)建的對象的接口。concreteproduct 具體產品角色,實現product 接口。factoryproduct-creteproduct()+operation()concretefactoryconcreteproduct1concreteproduct2-creteproduct()+operation()+operation()在工廠模式中,產品的創(chuàng)建都是由concretefactory來完成的,通常每個 concretefactory負責一種具體產品的創(chuàng)建,各個子工廠之間相互獨立、職責明確、互不影響。5.1工廠模式結構圖2.2.4 工廠模式在本程序中的應用與理解:在本系統(tǒng)中, 工廠模式用于的功能點為生產上衣和褲子,具體相關類的基本結構如下:public abstract class absclothespublic abstract bool add(int id, int num, int price);public interface ifactoryabsclothes createclothes();public class up:absclothespublic override bool add(int id, int num, int price);public class down : absclothespublic override bool add(int id, int num, int price);public class upfac : ifactorypublic absclothes createclothes();public class downfac:ifactorypublic absclothes createclothes();absclothes 類是所有衣服的父類, up和down 分別為上衣和褲子, 是absclothes 的子類。 ifactory 類為所有具體工廠的抽象類,upfac 和downfac 為ifactory 的子類,是生產上衣和褲子的具體工廠。當每次系統(tǒng)想獲得上衣或褲子的具體對象 時,不是在主程序中直接用new 來生成 up 和down 的對象,而是通過調用 upfac 和downfac 的createclothes 方法來生成。由于 absclothes 和ifactory 作為抽象父類,當有新產品要添加的時候可以通過繼承這兩個父類來實現新產品的擴充, 而原來的程序不用做出任何修改,這是符合面向對象程序設計的“開閉”原則的。通過這次使用工廠模式,我們更加深刻的體會到了工廠模式的作用和適用范圍:(1) ) 當一個類不知道它所必須創(chuàng)建的對象的類信息的時候。(2) ) 當一個類希望由它的子類來指定它所創(chuàng)建的對象的時候。(3) )當類將創(chuàng)建的對象的職責委托給多個幫助子類中的一個,并且希望將哪一個幫助子類是代理者這一信息局部化的時候。2.3 建造者模式2.3.1 建造者模式的定義建造者模式用來創(chuàng)建復合對象, 并把復合對象的創(chuàng)建過程加以抽象, 通過子類繼承和重載的方式, 動態(tài)地創(chuàng)建具有復合屬性的對象; 另一方面, 為了統(tǒng)一創(chuàng)建過程,又把對象創(chuàng)建的操作統(tǒng)一封裝在名為 director 所提供的方法里。2.3.2 建造者模式的意圖將一個復雜的構建與其表示相分離,使得同樣的構建過程可以創(chuàng)建不同的表示。2.3.3 建造者模式的結構client+ main ( )builderdirector+ construct ( )+ builderparta ( )+ builderpartb ( )+ builderpartc ( )+ builderpartd ( )productconcretebuilder+ builderparta ( )+ builderpartb ( )+ builderpartc ( )+ builderpartd ( )建造者模式結構圖從圖中可以看出,建造者模式的結構包括四個部分:builder,concretebuilder, director 和 product 。其中:builder- 為創(chuàng)建一個 product 對象的各個部分指定抽象接口。concretebuilder-實現 builder 接口以構造和裝配該產品的各個部件。定義并明確他所創(chuàng)建的表示。提供一個檢索產品的接口。director- 構造一個使用 builder 接口的對象。product- 表示被構造的復雜對象。 concretebuilder創(chuàng)建該對象的內部表示并定義它的裝配過程。 包含定義組成部件的類, 包括將這些部件裝配成最終的產品的接口。2.3.4 建造者模式在本程序中的應用與理解:建造者模式在本系統(tǒng)中所應用的模塊為創(chuàng)建成套的衣服,包括上衣和褲子, 具體相關類的結構如下所示:public class directorpublic void construct(builder builder);public abstract class builderpublic abstract void madeshirt();public abstract void madetrousers();public abstract taozhuang gettao();public class taozhuangprivate string shirt;public string shirtget return shirt; set shirt = value; private string trousers;public string trousersget return trousers; set trousers = value; private int price;public int priceget return price; set price = value; public bool add(int id,int num);public class highq:builderprivate taozhuang hq = new taozhuang();public override void madeshirt();public override void madetrousers();public override taozhuang gettao();public class middleq : builderprivate taozhuang mq = new taozhuang();public override void madeshirt();public override void madetrousers();public override taozhuang gettao();public class lowq : builderprivate taozhuang lq = new taozhuang();public override void madeshirt();public override void madetrousers();public override taozhuang gettao();builder 類為建造者的抽象類, highq ,middleq ,以及 lowq 為 builder 的子類, 為具體的建造者,分別代表生產高檔套裝,中檔套裝以及低檔套裝。套裝類taozhuang有三個主屬性,分別是上衣shirt ,褲子 trous

溫馨提示

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

最新文檔

評論

0/150

提交評論