当前位置: 首页 > news >正文

制作软件的网站装饰工程设计东莞网站建设

制作软件的网站,装饰工程设计东莞网站建设,龙岗区住房和建设局在线网站,wordpress 不显示图片在策略模式(Strategy Pattern)中#xff0c;一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中#xff0c;我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意… 在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决在有多种算法相似的情况下使用 if…else 所带来的复杂和难以维护。何时使用一个系统有许多许多类而区分它们的只是他们直接的行为。如何解决将这些算法封装成一个一个的类任意地替换。关键代码实现同一个接口。应用实例 1、诸葛亮的锦囊妙计每一个锦囊就是一个策略。2、旅行的出游方式选择骑自行车、坐汽车每一种旅行方式都是一个策略。3、JAVA AWT 中的 LayoutManager。优点 1、算法可以自由切换。2、避免使用多重条件判断。3、扩展性良好。缺点1、策略类会增多。2、所有策略类都需要对外暴露。使用场景 1、如果在一个系统里面有许多类它们之间的区别仅在于它们的行为那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。2、一个系统需要动态地在几种算法中选择一种。3、如果一个对象有很多的行为如果不用恰当的模式这些行为就只好使用多重的条件选择语句来实现。注意事项如果一个系统的策略多于四个就需要考虑使用混合模式解决策略类膨胀的问题。实现我们将创建一个定义活动的 Strategy 接口和实现了 Strategy 接口的实体策略类。Context 是一个使用了某种策略的类。StrategyPatternDemo我们的演示类使用 Context 和策略对象来演示 Context 在它所配置或使用的策略改变时的行为变化。步骤 1创建一个接口。Strategy.javapublic interface Strategy {int doOperation(int num1, int num2);}步骤 2创建实现接口的实体类。OperationAdd.javapublic class OperationAdd implements Strategy {Overridepublic int doOperation(int num1, int num2) {return num1 num2; }}OperationSubstract.javapublic class OperationSubstract implements Strategy {Overridepublic int doOperation(int num1, int num2) {return num1 - num2; }}OperationMultiply.javapublic class OperationMultiply implements Strategy {Overridepublic int doOperation(int num1, int num2) {return num1 * num2; }}步骤 3创建 Context 类。Context.javapublic class Context {private Strategy strategy;public Context(Strategy strategy){this.strategy strategy; }public int executeStrategy(int num1, int num2){return strategy.doOperation(num1, num2); }}步骤 4使用 Context 来查看当它改变策略 Strategy 时的行为变化。StatePatternDemo.javapublic class StrategyPatternDemo {public static void main(String[] args) { Context context new Context(new OperationAdd()); System.out.println(10 5 context.executeStrategy(10, 5)); context new Context(new OperationSubstract()); System.out.println(10 - 5 context.executeStrategy(10, 5)); context new Context(new OperationMultiply()); System.out.println(10 * 5 context.executeStrategy(10, 5)); }}步骤 5验证输出。10 5 1510 - 5 510 * 5 50原文链接https://thinkwon.blog.csdn.net/article/details/101383647
http://www.pierceye.com/news/135376/

相关文章:

  • 网站变灰兼容代码北京计算机培训学校
  • 网站导航包括海拉尔网站建设+网站设计
  • flashfxp 上传网站佛山哪里有网站开发
  • qq互联 网站开发济南建设集团有限公司官网
  • 网站开发兼职网站学校网站构建
  • 简约网站后台媒体网站开发
  • 广东营销网站建设网页设计理念及设计思路
  • 咋自己做网站桂林生活网官网首页
  • 电子商务网站建设的展望自己做壁纸的网站
  • 国外h5建站网站建设方案总结评语
  • 百度开放平台白城整站优化
  • 搜狗整站优化广州市网站建站
  • 最方便建立网站北京定制网络营销收费
  • 烟台放心的一站式网站建设桐梓网站建设
  • 如何高效的完成网站建设步骤美食分享网站建设策划书
  • 建立网站的软件网站建设数据库的购买
  • 建网站需要多大的宽带wordpress 分享后可见
  • 自建营销型企业网站阿里网 网站备案流程
  • 与网站建设相关的论文题目wordpress图片上文字
  • 怎样搭建网站视频教程58企业网站如何做
  • 比较有名的网站建设公司wordpress 字数
  • 网站内容资源建设渭南市建设项目
  • 网站设置的参数wordpress弹窗登录注册
  • 网课系统软件网站建设费用网站做vr的收费
  • 海宁做网站的公司seo怎么学在哪里学
  • 佛山做网站多少钱服务器学生
  • 自己建网站卖东西怎么进入wordpress修改界面
  • 网站建设与制作报价wordpress菜单怎么设置目录册
  • 学生免费建设网站建设网站是否等于开展网络营销
  • 旅游网站结构图网站编程图