国产乱人视频免费观看网站,九九精品视频在线观看,九九久re8在线精品视频,日韩久久精品五月综合

<menu id="zjelp"></menu>

    <th id="zjelp"><tbody id="zjelp"><form id="zjelp"></form></tbody></th>
    <small id="zjelp"><menuitem id="zjelp"></menuitem></small>
  • <small id="zjelp"></small>

    <address id="zjelp"></address>
    <address id="zjelp"></address>
    設計模式問答(2)-java開發(fā)java經(jīng)驗技巧

    設計模式問答(2)-java開發(fā)java經(jīng)驗技巧

    ID:31118148

    大?。?6.00 KB

    頁數(shù):15頁

    時間:2019-01-06

    設計模式問答(2)-java開發(fā)java經(jīng)驗技巧_第1頁
    設計模式問答(2)-java開發(fā)java經(jīng)驗技巧_第2頁
    設計模式問答(2)-java開發(fā)java經(jīng)驗技巧_第3頁
    設計模式問答(2)-java開發(fā)java經(jīng)驗技巧_第4頁
    設計模式問答(2)-java開發(fā)java經(jīng)驗技巧_第5頁
    資源描述:

    《設計模式問答(2)-java開發(fā)java經(jīng)驗技巧》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。

    1、設計模式問答(2)-編程開發(fā)技術設計模式問答(2)木文由ImportNew?shcnggordon翻譯自codeprojecto歡迎加入翻譯小組。轉載請見文末要求。介紹這是設計模式問答1的連載。在這個系列,我們將覆蓋到解釋器、迭代器、調停者、備忘錄和觀察者模式。如果你還沒冇閱讀過我之前的系列,你可以隨時從下面開始?設計模式問答1:工廠模式,抽象工廠模式,構造者模式,原型模式,單例模式,命令模式?設計模式問答3:狀態(tài)模式,策略模式,訪問者模式,適配器模式,享元模式?設計模式問答4:橋接模式,組合模式,裝飾者模式,外觀模式,職責鏈模式(COR),代理模式,模板模式?UML問答1:

    2、UML部分1?UML問答2:UML部分2什么是解釋器模式?解釋器模式允許我們將語法解釋為代碼解決方案。好了,這意味著什么?語法會被映射到類,并形成解決方案。舉個例子,7-2能夠被映射到“cisMinus"類。一句話,解釋器模式為我們提供了一種解決方案,這個方案指導如何編寫一個解析語法并執(zhí)行代碼的解釋器。下而是一個解釋器的簡單例子,它能夠按照我們提供的日期格式語法,將日期解釋為對應的代碼,并輸入正確的結果。口期語法讓我們開始做圖“日期語法”屮所示的日期格式的解釋器。在開始Z前,我們要先理解一下解釋器模式中不同的組件,然后再來處理映射。上下文部分包含數(shù)拯,而邏輯部分包含將上下文中

    3、數(shù)據(jù)轉換成可讀格式的轉換邏輯。上卜?文和邏輯讓我們看一卜?日期格式的語法是怎么定義的。定義任何語法的第一步,是把語法分解成小的邏輯組件。圖“語法映射與類的映射”展示了怎么識別這些組件,以及怎么映射到處理這部分語法的邏輯類上面。我們己經(jīng)把日期格式打斷成了4個組件,分別是月、日、年和分隔符。對這4個組件,我們將分別定義包含圖中展示的邏輯的類。然后,我們將為F1期格式的不同組件創(chuàng)建不同的類。語法映射與類的映射前面說過,有兩種類,一種是包含邏輯的表達式類,另一種是包含數(shù)據(jù)的上下文類,如圖“表達式和上下文類”屮所示。我們定義了不同類屮的表達式解析算法,這些類都從公共接口“ClsAbst

    4、ractExpression”派生,并實現(xiàn)了"Evaluate"方法。"Evaluate"方法接收包含數(shù)據(jù)的上F文類作為參數(shù);它根據(jù)表達式邏輯來解析數(shù)據(jù)。“ClsYearExpression”實例將“YYYY”替換成年份值,而"ClsMonthExpression”將“MM”替換成月份值,以此類推。解釋器類圖表達式和上下文類現(xiàn)在,我們有了單獨的表達式解析邏輯類,然后我們來看看客戶端會如何使用這個邏輯。客戶端首先把日期語法格式傳遞給上下文類。依據(jù)日期格式,我們依次向集合中添加表達式實例。如果我們找到了“DD”,我們就添加一個“ClsDayExpression”實例;如果我們找到

    5、了"MM”,就添加一個“ClsMonthExpression”實例,等等。最后,我們只需要遍歷集合,并調用"Evaluate"函數(shù)。所有的"Evaluate"函數(shù)執(zhí)行完之后,我們就顯示結果??蛻舳私忉屍鬟壿嬆隳芙忉尩髂J絾?迭代器模式允許在不暴露內部代碼實現(xiàn)的情況下,順序訪問毎個元素。讓我們來理解一下。假設你有一個記錄集合,你需要順序遍歷每條記錄,并且需要保持當前訪問的位置,那么你需要的正是迭代器模式。這是最普通的設計模式,你會在不知不覺中用到它。在某些程度上,當你使用“foreach”(它允許我們逐個元素地訪問一個集合)時,你就已經(jīng)在使用迭代器模式了。迭代器業(yè)務邏輯在圖

    6、“迭代器業(yè)務邏輯”中,我們使用“cisIterator”類來存放顧客類的集合。我們在“clsltcmtor”類內部,定義了一個數(shù)組,和一個名稱為“FillObjects”的方法,這個方法用來加載數(shù)組的內容。顧客集合數(shù)組是私冇的,顧客的數(shù)據(jù)可以通過數(shù)組的下標來訪問。因此我們定義了一組公有函數(shù),包含“getBylndex”(通過指定下表來訪問),“Prev”(得到集合屮前一個顧客數(shù)據(jù)),“Next”(得到集合中下一個顧客數(shù)據(jù)),“getFirst”(得到集合中第一個顧客數(shù)據(jù)),“gctSst”(得到集合中最后一個顧客數(shù)據(jù))。我們只對客戶端暴露這些函數(shù)。這些函數(shù)小心的順序遍歷集合,

    7、并能夠記憶當前遍歷的索引。下面的圖“客戶遍歷邏輯”說明了該如何使用類“clslleralor”的實例"ObjIterator",顯示下一個、前一個、最后一個、第一個,以及通過索引顯示顧客數(shù)據(jù)??蛻舯闅v邏輯你能解釋調停者模式嗎?大多數(shù)吋候,項口小組件間的通訊都很復雜。因此組件間的邏輯關系也變得異常復雜。調停者模式幫助對象間用不互相關聯(lián)的方式來通訊,從而使復雜度最小化。調停者模式示例讓我們考慮圖“調停者模式示例”,它描述了i個需要使用調停者模式的真實場景。它是一個非常用戶友好的接口。它冇3個典型的場景。場景

    當前文檔最多預覽五頁,下載文檔查看全文

    此文檔下載收益歸作者所有

    當前文檔最多預覽五頁,下載文檔查看全文
    溫馨提示:
    1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
    2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
    3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
    4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。