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

网站主页布局建设银行网站点不了

网站主页布局,建设银行网站点不了,做网站编辑有人带吗,让你的静态网站 做后台1.策略模式简介 策略模式#xff1a;策略模式是一种行为型模式#xff0c;它将对象和行为分开#xff0c;将行为定义为 一个行为接口 和 具体行为的实现。策略模式最大的特点是行为的变化#xff0c;行为之间可以相互替换。每个if判断都可以理解为就是一个策略。本模式使得…1.策略模式简介 策略模式策略模式是一种行为型模式它将对象和行为分开将行为定义为 一个行为接口 和 具体行为的实现。策略模式最大的特点是行为的变化行为之间可以相互替换。每个if判断都可以理解为就是一个策略。本模式使得算法可独立于使用它的用户而变化 2.模式结构 策略模式包含如下角色 Strategy: 抽象策略类策略是一个接口该接口定义若干个算法标识即定义了若干个抽象方法如下图的algorithm()Context: 环境类 /上下文类 上下文是依赖于接口的类是面向策略设计的类如下图Context类即上下文包含用策略(接口)声明的变量如下图的strategy成员变量。 上下文提供一个方法如下图Context类中的的lookAlgorithm()方法持有一个策略类的引用最终给客户端调用。该方法委托策略变量调用具体策略所实现的策略接口中的方法实现接口的类重写策略(接口中的方法来完成具体功能 ConcreteStrategy: 具体策略类具体策略是实现策略接口的类如下图的ConcreteStrategyA类和ConcreteStrategyB类。具体策略实现策略接口所定义的抽象方法即给出算法标识的具体方法。说白了就是重写策略类的方法 3.案例 1.传统实现方式 代码 public Double calculationPrice(String type, Double originalPrice, int n) {//中级会员计费if (type.equals(intermediateMember)) {return originalPrice * n - originalPrice * 0.1;}//高级会员计费if (type.equals(advancePrimaryMember)) {return originalPrice * n - originalPrice * 0.2;}//普通会员计费return originalPrice;}传统的实现方式通过传统if代码判断。这样就会导致后期的维护性非常差。当后期需要新增计费方式还需要在这里再加上if(),也不符合设计模式的开闭原则。 2.策略模式实现 抽象类策略 package StrategyExercise;public interface MemberStrategy {// 一个计算价格的抽象方法//price商品的价格 n商品的个数public double calcPrice(double price, int n); }具体实现类 // 普通会员——不打折 public class PrimaryMemberStrategy implements MemberStrategy { // 实现策略//重写策略方法具体实现功能Overridepublic double calcPrice(double price, int n) {return price * n;} }package StrategyExercise;// 中级会员 打百分之10的折扣 public class IntermediateMemberStrategy implements MemberStrategy{Overridepublic double calcPrice(double price, int n) {double money (price * n) - price * n * 0.1;return money;} }package StrategyExercise;// 高级会员类 20%折扣 public class AdvanceMemberStrategy implements MemberStrategy{Overridepublic double calcPrice(double price, int n) {double money price * n - price * n * 0.2;return money;} } 上下文类 也叫做上下文类或环境类起承上启下封装作用。 package StrategyExercise;/*** 负责和具体的策略类交互* 这样的话具体的算法和直接的客户端调用分离了使得算法可以独立于客户端独立的变化。*/// 上下文类/环境类 public class MemberContext {// 用户折扣策略接口private MemberStrategy memberStrategy;// 注入构造方法public MemberContext(MemberStrategy memberStrategy) {this.memberStrategy memberStrategy;}// 计算价格public double qoutePrice(double goodsPrice, int n){// 通过接口变量调用对应的具体策略return memberStrategy.calcPrice(goodsPrice, n);}}测试类 package StrategyExercise;// 测试类 public class Application {public static void main(String[] args) {// 具体行为策略MemberStrategy primaryMemberStrategy new PrimaryMemberStrategy(); // 接口回调向上转型MemberStrategy intermediateMemberStrategy new IntermediateMemberStrategy();MemberStrategy advanceMemberStrategy new AdvanceMemberStrategy();// 用户选择不同策略MemberContext primaryContext new MemberContext(primaryMemberStrategy);MemberContext intermediateContext new MemberContext(intermediateMemberStrategy);MemberContext advanceContext new MemberContext(advanceMemberStrategy);//计算一本300块钱的书System.out.println(普通会员的价格 primaryContext.qoutePrice(300,1));// 普通会员300System.out.println(中级会员的价格 intermediateContext.qoutePrice(300,1));// 中级会员 270System.out.println(高级会员的价格 advanceContext.qoutePrice(300,1));// 高级会员240} } 运行结果 普通会员的价格300.0 中级会员的价格270.0 高级会员的价格240.0 上述案例UML类图 4.策略模式优缺点 优点策略模式提供了对“开闭原则”的完美支持用户可以在不 修改原有系统的基础上选择算法或行为也可以灵活地增加 新的算法或行为。策略模式提供了管理相关的算法族的办法。策略模式提供了可以替换继承关系的办法。使用策略模式可以避免使用多重条件转移语句。缺点客户端必须知道所有的策略类并自行决定使用哪一个策略类。策略模式将造成产生很多策略类可以通过使用享元模式在一 定程度上减少对象的数量。 5.策略模式适用场景 在以下情况下可以使用策略模式 如果在一个系统里面有许多类它们之间的区别仅在于它们 的行为那么使用策略模式可以动态地让一个对象在许多行 为中选择一种行为。一个系统需要动态地在几种算法中选择一种。如果一个对象有很多的行为如果不用恰当的模式这些行 为就只好使用多重的条件选择语句来实现。不希望客户端知道复杂的、与算法相关的数据结构在具体 策略类中封装算法和相关的数据结构提高算法的保密性与 安全性。 6.总结 在策略模式中定义了一系列算法将每一个算法封装起来并让它们 可以相互替换。策略模式让算法独立于使用它的客户而变化也称为 政策模式。策略模式是一种对象行为型模式。策略模式包含三个角色环境类在解决某个问题时可以采用多种策略 在环境类中维护一个对抽象策略类的引用实例抽象策略类为所支持 的算法声明了抽象方法是所有策略类的父类具体策略类实现了在 抽象策略类中定义的算法。策略模式是对算法的封装它把算法的责任和算法本身分割开委派 给不同的对象管理。策略模式通常把一个系列的算法封装到一系列的 策略类里面作为一个抽象策略类的子类。策略模式主要优点在于对“开闭原则”的完美支持在不修改原有系 统的基础上可以更换算法或者增加新的算法它很好地管理算法族 提高了代码的复用性是一种替换继承避免多重条件转移语句的 实现方式其缺点在于客户端必须知道所有的策略类并理解其区 别同时在一定程度上增加了系统中类的个数可能会存在很多策 略类。策略模式适用情况包括在一个系统里面有许多类它们之间的区 别仅在于它们的行为使用策略模式可以动态地让一个对象在许多 行为中选择一种行为一个系统需要动态地在几种算法中选择一种 避免使用难以维护的多重条件选择语句希望在具体策略类中封装 算法和与相关的数据结构。
http://www.huolong8.cn/news/223536/

相关文章:

  • 山东企业网站备案2021网页游戏排行
  • 做零食网站怎么样设计app的软件有哪些
  • flash网站建设教程南通网站建设费用
  • 企业所得税税率2022电影网站如何做seo
  • 物流网站毕业设计论文商务网站建设综合实训报告
  • 大气dede织梦企业广告网络公司工作室网站模板源码学士学位网站重置密码怎么做
  • 手机怎么建立网站做百科网站
  • 做传媒网站公司简介广告推广平台代理
  • 网站模板绑定域名徐州建站方案
  • 免费行情软件网站下载泰安做网站的
  • 网站开发网页加载很慢怎么办高端网站建设专业
  • 电子商务企业网站的基本功能做网站推广哪些
  • 公司网站建设推荐wordpress 带水印
  • 局域网视频网站建设电商平台有哪些模式
  • 网站设置不拦截网站维护服务公司
  • 阿里云建站视频编写软件的步骤
  • 最大的高仿手表网站网站整体运营
  • DW做的网站加载慢微信小程序开通要钱吗
  • 做电影网站需要那种服务器外包的工作值得做吗
  • .帮别人做网站在线支付网站制作
  • 东营高端网站建设网络营销pdf
  • 网站备案ip查询系统wordpress输出文章id
  • 做网站线稿软件有哪些安装wordpress主题放哪里
  • 网站建设项目建议书wordpress 免费电商主题
  • 阜阳建设网站公司net开发网页小程序
  • 基于html5的购物网站开发网络营销策划的主要特点
  • asp网站开发源码提高wordpress 权重
  • 长沙网站seo技术平台开发是做什么的
  • 关于网络的网站怎么做杭州建设局网站
  • 忻州网站建设微信公众号网站开发