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

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計(jì)設(shè)計(jì)模式論文鄧鵬輝(已修改)

2025-06-07 20:59 本頁(yè)面
 

【正文】 面向?qū)ο?程序設(shè)計(jì) 設(shè)計(jì)模式論文 姓名 : 鄧鵬輝 班級(jí) : 軟碩 4 班 學(xué)號(hào) : M20xx76109 一. 程序設(shè)計(jì)目標(biāo)和使用說(shuō)明 該程序在 版本中完成,用的是 。 該程序的設(shè)計(jì)目的是為了學(xué)習(xí) java 設(shè)計(jì)模式,應(yīng)用其中的少數(shù)幾個(gè)模式編寫(xiě)一個(gè)程序,在編寫(xiě)程序的過(guò)程中親身實(shí)踐相應(yīng)設(shè)計(jì)模式,學(xué)習(xí)體會(huì)。 該程序的設(shè)計(jì)目標(biāo)是完成一個(gè)餐廳 的經(jīng)營(yíng)流程。其中的角色包括消費(fèi)者,服務(wù)員,經(jīng)理,以及廚房的廚師。 在程序設(shè)計(jì)中有四個(gè)包 。 圖 11 項(xiàng)目 包 1. client 包。 圖 12 Client 包文件 其中利用策略模式,對(duì)顧客進(jìn)行劃分。讓顧客具有各自不同的特點(diǎn)和屬性,并且可以在程序運(yùn)行的時(shí)候,利用相關(guān)方法進(jìn)行修改,實(shí)現(xiàn)客戶(hù)在進(jìn)行時(shí)的需求更改。 2. waiter 包。 圖 13 waiter 包文件 在 waiter 包中,是利用觀察者模式實(shí)現(xiàn)的餐廳服務(wù)系統(tǒng)。經(jīng)理作為 subject,然后服務(wù)員作為 Observer,訂閱信息。在信息改變 的時(shí)候,由經(jīng)理通知所有的服務(wù)員,以便所有的服務(wù)員得到最新的信息,在業(yè)務(wù)方面不會(huì)出錯(cuò)。然后由于餐廳廚房里也需要知道菜單信息,以及及時(shí)更改的信息。 所以將 chef 也作為訂閱者加入到 list 中,跟服務(wù)員一起接收新的信息。 3. kitchen 包 。 包括文件 : 圖 14 kitchen 包文件 利用模板模式將菜肴加工的過(guò)程進(jìn)行優(yōu)化,將相同步驟抽象出來(lái)。 然后又利用 簡(jiǎn)單工廠模板方法來(lái)將菜類(lèi)進(jìn)行抽象, 利用一個(gè)例子,將牛肉類(lèi)進(jìn)行抽象。 4. myrestaurant 包 。 其中包括 main 方法。 圖 15 myrestaurant 包文件 在該包中, main 方法中導(dǎo)入前三個(gè)包,進(jìn)行綜合調(diào)用。 綜合利用之前的各個(gè)角色,可以充分模擬餐廳的基本業(yè)務(wù)。 實(shí)例一個(gè)晚宴和午餐的客人。 他們是根 據(jù)自己的特點(diǎn)來(lái)構(gòu)造了自己的屬性。后來(lái)他們又更改了自己選擇。然后他們提交點(diǎn)單給經(jīng)理,經(jīng)理會(huì)同志所有服務(wù)員和廚師。廚師會(huì)根據(jù)自己讀到的點(diǎn)單來(lái)做菜。 二. 模板及其描述 本程序中綜合運(yùn)用了 策略模式,觀察者模式,模板模式和工廠模式。 下面就四個(gè)模式分別進(jìn)行說(shuō)明。 策略模式 策略模式( Strategy Pattern)中體現(xiàn)了兩個(gè)非?;镜拿嫦?qū)ο笤O(shè)計(jì)的基本原則:封裝變化的概念;編程中使用接口,而不是對(duì)接口實(shí)現(xiàn)。 策略模式屬于對(duì)象行為型設(shè)計(jì)模式,主要是 定義一系列的算法,把這些算法一個(gè)個(gè)封裝成擁有共同接口的單獨(dú)的類(lèi),并且使 它們之間可以互換。策略模式使這些算法在客戶(hù)端調(diào)用它們的時(shí)候能夠互不影響地變化。 這里的算法不要狹義的理解為數(shù)據(jù)結(jié)構(gòu)中算法,應(yīng)該理解為不同的業(yè)務(wù)處理方法。 這種做法會(huì)帶來(lái)什么樣的好處呢? 它將算法的使用和算法本身分離,即將變化的具體算法封裝了起來(lái),降低了代碼的耦合度,系統(tǒng)業(yè)務(wù)策略的更變僅需少量修改。 算法被提取出來(lái),這樣可以使算法得到重用,這種情況還可以考慮使用享元模式來(lái)共享算法對(duì)象,來(lái)減少系統(tǒng)開(kāi)銷(xiāo)(但要注意使用享元模式的建議條件)。 先看看策略模式的結(jié)構(gòu):要使算法擁有共同的接口,就要實(shí)現(xiàn)一個(gè)接口或者一個(gè)抽象類(lèi) 出來(lái)才行。這樣結(jié)構(gòu)的輪廓也就出來(lái)了,可用簡(jiǎn)單的類(lèi)圖來(lái)表示它們之間的關(guān)系: 圖 21 策略 模式類(lèi)圖 策略模式由三個(gè)角色組成: 算法使用環(huán)境角色:算法被引用到這里和一些其它的與環(huán)境有關(guān)的操作一起來(lái)完成任務(wù); 抽象策略角色:規(guī)定了所有具體策略角色所需的接口。在 java 它通常由接口或者抽象類(lèi)來(lái)實(shí)現(xiàn); 具體策略角色:實(shí)現(xiàn)了抽象策略角色定義的接口。 圖 22 Client 包文件 在此包中, CookingOrder, SweetOrder, DrinkOrder 為三個(gè) 接口 ,分別用來(lái)定義顧客的三個(gè)餐飲屬性。 FiveCooking, SevenCooking, TatalCooking 為對(duì)接口 CookingOrder的實(shí)現(xiàn)。 SweetOk, SweetNo 為對(duì) SweetOrder 的實(shí)現(xiàn)。 DrinkTea, DrinkCoffee,DrinkUsquebaugh 為對(duì)接口 DrinkOrder 的實(shí)現(xiàn)。分別完成對(duì)菜式的要求,甜 點(diǎn)的要求,和酒水的要求。 接口只提供空方法,后面繼承類(lèi)個(gè)別實(shí)現(xiàn)。舉一例: a)接口 SweetOrder package client。 public interface SweetOrder { public String sweet()。 } 提供一個(gè)抽象方法。 b)類(lèi) SweetOk package client。 public class SweetOk implements Sw
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1