设计模式案例(十二).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2001/11/1 UML-F tags for Framework Construction Principles and Patterns - The UML Profile for Framework Architectures讀書會第四章 廖峻鋒 Aug 22,2003 NCCU Computer Center 學習目標 建構Framework的二大原則(及其標記) Unification / Separation Template-Hook觀念(及其標記) Gof Patterns的五大建構原則(Meta Patterns)(及其標記) 所有的Gof皆可歸為這五類。 如何自訂標記 Agenda 背景知識 Template / Hook Essential Framework Construction Principles UML-F for Gof Patterns UML-F for Domain-specific Patterns 進階閱讀參考 背景知識 控制權互換(Inversion of Control) Template / Hook 三個重要的基本Patterns [重要]實作和流程控制角色的互換(Inversion of Control) 傳統的公用函式庫(Library) 函式由函式庫定義。 我們寫主程式,在主程式中呼叫函式。 你控制流程,Library提供實作。 框架(Framework) 主程式由框架定義。 我們實作函式,被框架定義的主程式所呼叫。 Framework控制流程,你提供實作! Inversion of Control Library Reuse String countStr = “256”; int count = Integer.parseInt(countStr); Framework Reuse public class MyServlet extends HttpServlet { public void doGet(…){ // 提供實作 } } Meta Patterns Gof Patterns其實用來用去也都是那幾招。 由Template / Hook組合成不同Meta Patterns. 作者認為各式各樣的Design Patterns只是T / H的不同組合而已。 Template Method /Hook Method 我們寫Framework時主要邏輯通常會寫在Template Method 中。 Template Method會呼叫若干Hook Method,Hook Method通常就是「變異點」。 只要改寫Hook Method,就可改變Template Method的行為。(課本第68頁中) 參考下頁的例子。 範例:Template / Hook Method Template/Hook Class Template Class /Hook Class 擁有Template method的類別稱為Template Class。 擁有Hook method的類別稱為Hook Class。 同一類別可能同時是Template及Hook Class。(例如:Unif. 、Chain of Resp.) UML-F層級關係 UML-F (Template / Hook) 範例 Hook Scale up Template Class 可能也是別人的Hook Class 可參閱上一張投影片 三個重要的基本Patterns Delegate[Grand98] - 繼承的替代方案 Template Method[Gof95]- Inversion of Control的標準方式! Interface[Grand98] - 利用界面區隔類別使用者(Client)與類別實作(Concrete Classes). Delegate Java API中到處都是Delegate. - Patterns in Java ,volume I by Mark Grand. Delegate範例 Interface[Grand98] Interface規定了一組方法(method),所有實作它的元件都要實作所有方法。 Client呼叫的是Interface中的方法,所以元件的抽換對Client來說是感覺不到的(不用改code)。 實作界面就可保証符合規格 java.io.FilenameFilter Template Method[Gof95] 一個Browser向HttpServlet發出post時,會觸發doPost()方法。 一個Browser向Servlet發出get時,會觸發doGet()方法。 判別是get 或 post,

文档评论(0)

yurixiang1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档