




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第四章,行為模式、課程目標(biāo)、觀察程序模式Iterator模式Strategy模式Template模式Visitor模式Chain of Responsibility模式Command模式其他模式(例如Interpreter模式、)牙齒方案主要由以下部分組成:節(jié)目運行完成后,通過拖動鼠標(biāo)在表單中繪制“Hello”字符,(1)使用命令介面Command定義命令方法。(2)特定命令角色MacroCommand和DrawCommand類,這兩個類都定義了方法,如Command介面實現(xiàn)、DrawCommand實現(xiàn)繪制命令,以及MacroCommand類為命令添加、運行和刪除。(3)請求介面Drawabl
2、e,DrawCanvas類實現(xiàn)Drawable接口并定義特定請求相關(guān)操作。(4)實施客戶端、JFrame繼承和ActionListener和MouseMotionListener介面,創(chuàng)建西餐介面和各種事件,行為模式概述,行為模式描述算法和對象之間的角色分配,行為模式描述對象和類的模式,行為類模式和行為對象模式,(1)行為類模式使用繼承機制在類之間分配行為。(2)行為對象模式使用對象合成而不是繼承。某些行為對象模式說明了相應(yīng)的一組對象如何徐璐協(xié)作,以執(zhí)行這些對象中任何一個都不能單獨執(zhí)行的任務(wù)。這里的一個重要問題是對等對象如何相互理解。對等物件可以保持彼此的明確參考,但會增加管接頭。在極端情況下
3、,每個對象必須了解所有其他對象。職責(zé)模式,職責(zé)模式是職責(zé)鏈模式,當(dāng)有多個對象可以處理或滿足客戶請求時,配置鏈職責(zé)(CoR)將按順序為每個對象處理請求的機會好的示例是Java的異常處理機制,當(dāng)程序遇到異常時,該機制會比較異常是否與catch捕獲的異常匹配,如果匹配,則執(zhí)行設(shè)置的處理,如果不比較相應(yīng)的處理,則將異常導(dǎo)出到try catch節(jié)目塊之外。方案簡介,主要適用于以下情況:多個對象可以處理一個請求,但處理請求的對象在運行時自動確定。嘗試向多個對象之一提交請求,而不明確指定收件人。試圖動態(tài)指定處理請求的對象集合。Chain of Responsibility模式映射和角色鏈模式映射如下所示:H
4、andler:定義處理請求的接口。ConcreteHandler:處理您負(fù)責(zé)的請求,并訪問鏈的繼承人。如果可以處理請求,則處理。否則,將請求轉(zhuǎn)發(fā)給繼任者。Client:將請求提交給鏈中的特定處理者ConcreteHandler對象。,Chain of Responsibility模式示例,public interface handler public void handle request(char c);public class character handler implements handler private handler successor;public character ha
5、ndler(handler successor)this . successor=successor;public void handle request(char c)if(character . is letter(c)system . out . print ln(character handln)Else SuSEpublic class number handler implements handler private handler successor;public number handler(handler successor)this . successor=successo
6、r;public void handle request(charc)if(character . is digit(c)system . out . print ln(number handler類處理Elsepublic class symbol handler implements handler public void handle request(char c)if(character . is defined(c)sysses es、字符處理、數(shù)字處理、符號處理、角色鏈模式優(yōu)點和不足、角色鏈模式主要有以下幾個茄子優(yōu)點:效率低下、在牙齒模式下,必須具有集成的Handler界面。提高將
7、責(zé)任分配給對象的靈活性,Command模式,Command模式,即將命令模式、請求或任務(wù)封裝到一個對象中,將執(zhí)行命令的責(zé)任與執(zhí)行命令的責(zé)任分開,然后將這些責(zé)任委派給其他對象。允許請求的一方獨立于發(fā)送方。模式介紹主要適用于以下情況:可以通過抽象要執(zhí)行的操作來參數(shù)對象。在處理語言中,可使用“回調(diào)”(callback)函數(shù)表示這些參數(shù)機制。在其他時間指定、排序和提交請求。Command對象可以具有獨立于初始請求的生命周期。支持取消操作。支持修改日志。將系統(tǒng)配置為組件的原語操作的高級操作。Command模式映射,命令模式映射是:Command:聲明執(zhí)行操作的接口。ConcreteCommand:將接收
8、方對象綁定到動作,并調(diào)用接收方的相應(yīng)操作以實現(xiàn)execute()方法。Receiver:如果知道如何實現(xiàn)請求相關(guān)任務(wù),則任何類都可以是接收方。Invoker:在命令可以執(zhí)行的情況下,必須運行牙齒請求并保存ConcreteCommand對象。Client:創(chuàng)建特定命令對象并設(shè)置收件人。Command模式示例,Command模式廣泛用于介面設(shè)計。例如,在表單中添加四個按鈕和一個文本框。其中三個牙齒更改文本框顏色,第四個按鈕關(guān)閉表格。具體實施包括:interface command interface public void process event();import javax . swing
9、. jbutton;class blue extends jbutton implements command interface public void process event()client . tf1 . set background(color .public blue(string name)super(name);class button handler implements action listener public void action performed(action event e)command interface command obj=(command int
10、erface command obj=,自定義四個按鈕類,每個按鈕類繼承JButton并實現(xiàn)CommandInterface接口。Blue類執(zhí)行文本框顏色為 BLUE 、cyan類執(zhí)行文本框顏色為 Cyan 、red類執(zhí)行文本框顏色為 Red 的任務(wù)以及ExitButton類關(guān)閉表單的任務(wù)。因為它們都很相似,所以只提供Blue類的參考代碼。Command模式的優(yōu)點和缺點:使用Command模式可能會導(dǎo)致系統(tǒng)中有太多特定的Command類。某些系統(tǒng)可能需要數(shù)十、數(shù)百或數(shù)千個特定的Command類,這可能會使這些系統(tǒng)上的Command模式不現(xiàn)實。Command模式將“執(zhí)行工作請求”對象和“知道如何
11、執(zhí)行工作的對象”分開。可以將多個命令組合到一個復(fù)合命令中。,因為不需要修改現(xiàn)有類,所以添加新command很容易。Command模式的優(yōu)點是可以像使用和繼承任何其他對象一樣使用和繼承Command對象。Iterator模式和Iterator模式是遍歷集合類的標(biāo)準(zhǔn)訪問方法的迭代器模式。從各種類型的集合類中抽象訪問邏輯,以避免客戶端暴露程序集的內(nèi)部結(jié)構(gòu)。模式簡介主要適用于以下情況:,提供了允許遍歷各種聚合結(jié)構(gòu)的集成介面(即支持多態(tài)迭代)。Iterator模式映射,迭代器模式映射定義了:Iterator:元素訪問和遍歷接口。ConcreteIterator:實現(xiàn)Iterator接口的特定迭代器,該接口在遍歷聚合對象時跟蹤當(dāng)前位置。Aggregate:定義用于生成相應(yīng)迭代器的接口。ConcreteAggregate:實現(xiàn)Aggregate接口的聚合對象,它實現(xiàn)了返回ConcreteIterator實例的方法。Iterator模式示例,public interface my Iterator public boolean has next();public Object next();import Ja
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國朝拜毯行業(yè)投資前景及策略咨詢研究報告
- 2025年中國幅條手輪行業(yè)投資前景及策略咨詢研究報告
- 2025年中國后跟型機行業(yè)投資前景及策略咨詢研究報告
- 2025年中國單回路數(shù)顯變送儀行業(yè)投資前景及策略咨詢研究報告
- 2025年中國全綿提花布行業(yè)投資前景及策略咨詢研究報告
- 2025年中國CO2自動滅火系統(tǒng)行業(yè)投資前景及策略咨詢研究報告
- 上海市七寶高中2025屆高一下化學(xué)期末質(zhì)量檢測試題含解析
- 黨務(wù)工作崗考試題及答案
- 單招高考考試題目及答案
- 大學(xué)成人考試題庫及答案
- 防汛物資儲備定額編制規(guī)程(SL298-2024)
- 綜合實踐:畫數(shù)學(xué)連環(huán)畫(大單元教學(xué)設(shè)計)一年級數(shù)學(xué)下冊北師大版2025
- 2025年大學(xué)英語六級考試試卷及答案
- 水工程概論課件
- 詐騙還款協(xié)議書范本
- 研學(xué)活動協(xié)議書合同協(xié)議
- 2025年教師參加初中英語新教材培訓(xùn)心得體會
- 2025「活躍用戶」研究報告(小紅書平臺)
- 交警122接處警工作規(guī)范
- 2025年3月版安全環(huán)境職業(yè)健康法律法規(guī)標(biāo)準(zhǔn)文件清單
- 小兒支氣管哮喘的護(hù)理-課件
評論
0/150
提交評論