- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3.2.8策略模式 strategy模式参与者 Strategy:定义所有支持算法的公共接口。Context使用该接口来调用ConcreteStrategy定义的算法。 ConcreteStrategy:用Strategy接口实现具体算法。 Context:用一个ConcreteStrategy对象来配置。维护一个Strategy对象的引用。可定义一个接口使Stategy访问它的数据。 * 3.2.8策略模式 实例:电子商务网站购物车系统,不同商品不同促销方法 Strategy public abstract class Strategy { public abstract void method(); } ConcreteStrategy public class strategyImplA extends Strategy { public void method() { System.out.println(“A折扣10%); }} public class StrategyImplB extends Strategy { public void method() { System.out.println(“B折扣18%); }} public class StrategyImplC extends Strategy { public void method() { System.out.println(“C折扣60%); }} * 3.2.8策略模式, 实例: Context public class Context { Strategy stra; public Context(Strategy stra) { this.stra = stra; } public void doMethod() { stra.method(); } } Test(client) public class Test { public static void main(String[] args) { Context ctx = new Context(new StrategyImplA()); ctx.doMethod(); ctx = new Context(new StrategyImplB()); ctx.doMethod(); ctx = new Context(new StrategyImplC()); ctx.doMethod(); }} * 3.2.9装饰模式 decorator模式动态地给一个对象添加一些额外的职责。 适用性 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 职责是可以撤消的。 当不能采用子类方法进行扩充时。 * 3.2.9装饰模式 decorator模式结构 * 3.2.9装饰模式 decorator模式行为 Decorator 将请求转发给其 Component对象。 在转发请求之前、之后,Decorator 可以选择性地执行一些附加的操作。 * 3.2.9装饰模式 decorator模式参与者 Component:定义对象接口,这些对象可以动态地添加职责。 ConcreteComponent:定义对象,这些对象可以附加一些职责。 Decorator:维持一个指向Component对象的引用,并定义一个与Component接口一致的接口。 ConcreteDecorator:向Component添加职责。 * 3.2.9装饰模式 实例:图形界面工具箱(GUI toolkit) 如一个TextView对象(在窗口中显式文本,默认没有滚动条、边框)。当TextView需要时,可以用附加上滚动条ScrollDecorator。同样方法,可以附加上边框BorderDecorator。 这样的结果可以对TextView使用decorators实现。 * 3.2.9装饰模式 实例:图形界面工具箱(GUI tool
您可能关注的文档
最近下载
- 专题04 阅读理解(含答案析)(中考英语考试题分项汇编(四川专用)).docx VIP
- 2025河北高速燕赵驿行集团有限公司社会招聘笔试参考题库附答案解析.docx VIP
- 雨课堂 科研伦理与学术规范-期末考试答案及各章节答案.docx VIP
- 2025河北高速燕赵驿行集团有限公司社会招聘笔试备考试题及答案解析.docx VIP
- 美的集团的ESG报告:2022ESG Report.pdf VIP
- 最简单的个人股权转让协议5篇.docx VIP
- 《全国医疗服务价格项目规范》(2021版).docx VIP
- 华南理工大学《信号与系统》历年多套期末考试试卷(含答案).pdf VIP
- 夏季防暑降温指南预防中暑健康教育讲座主题班会PPT课件.pptx VIP
- 2025年广东省春季高考英语语法填空专项复习试题三(含答案解析).pdf VIP
原创力文档


文档评论(0)