Observer样式应用于Android框架设计

Observer样式应用于Android框架设计

ID:47154158

大小:137.00 KB

页数:7页

时间:2019-08-13

Observer样式应用于Android框架设计_第1页
Observer样式应用于Android框架设计_第2页
Observer样式应用于Android框架设计_第3页
Observer样式应用于Android框架设计_第4页
Observer样式应用于Android框架设计_第5页
资源描述:

《Observer样式应用于Android框架设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Observer样式应用于Android框架设计1.     Framework的反向控制反向控制(InversionofControl)是应用框架(ApplicationFramework,简称AF)魅力的泉源。其常见的实现机制有二:1)         继承(Inheritance)----这与TemplateMethod样式密切相关。2)         委托(Delegation)----这与Observer样式密切相关。Android是个完全的AF,处处可见到反向控制的机制。当你熟悉上述的两种实现机制后,就会将之对应到TemplateMeth

2、od和Observer样式。然后藉由样式来更深刻体会这些机制的设计意涵。如此,除了更能活用Android之外,也能逐渐提升你自己设计新AF的兴趣、能力和信心。2.     复习:使用继承(即TemplateMethod样式)兹复习你已经熟悉的TemplateMethod样式,如下述之范例://Student.javapublicclassStudent{privateStringm_name;privateintm_credit;Student(Stringna,intcr){m_name=na;m_credit=cr;}publicvoidprint

3、(){System.out.println(m_name+","+String.valueOf(template_computeTuition()));}publicfloattemplate_computeTuition(){if(m_credit>6)m_credit=6;returnhook_getValue(m_credit)+5000;}protectedfloathook_getValue(intcredit){return(credit-1)*500;}}//Graduate_Student.javapublicclassGraduate

4、_StudentextendsStudent{Graduate_Student(Stringna,intcr){super(na,cr);}protectedfloathook_getValue(intcredit){returncredit*700;}}//Undergraduate_Student.javapublicclassUndergraduate_StudentextendsStudent{Undergraduate_Student(Stringna,intcr){super(na,cr);}}//JMain.javapublicclass

5、JMain{publicstaticvoidmain(String[]args){intcredit=5;Graduate_Studentmike=newGraduate_Student("Mike",5);mike.print();Undergraduate_Studentlinda=newUndergraduate_Student("Linda",7);linda.print();}}这是以TemplateMethod样式来实践反向控制。3.     使用委托(即Observer样式)在TemplateMethod样式里,hookmethod的具体

6、实现是撰写在子类别里。使用委托时,则将hookmethod定义于独立的类别里,如下述的HookClass: 把hookmethod定义于另外的类别://HookClass.javapublicclassHookClass{protectedfloatgetValue(intcredit){return(credit-1)*500;}}templatemethod委托HookClass类别之对象去处理客制化的部份://Student.javapublicclassStudent{privateStringm_name;privateintm_credit

7、;privateHookClasshookObject=null;Student(Stringna,intcr){m_name=na;m_credit=cr;}publicvoidsetHook(HookClasshk){hookObject=hk;}publicvoidprint(){System.out.println(m_name+","+String.valueOf(template_computeTuition()));}publicfloattemplate_computeTuition(){if(m_credit>6)m_credit=6

8、;returnhookObject.getValue(m_credit)+5000;}}定义H

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。