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

dreamwearver做网站腾讯云免费网站建设

dreamwearver做网站,腾讯云免费网站建设,搭建平台的成语,小说网站架构策略模式 策略模式对应与解决某一个问题的一个算法族,允许用户从该算法族中任选一个算法解决某一问题,同时可以方便的更换算法或者增加新的算法。并且由客户端决定调用哪个算法。 本质 分离算法,选择实现; 策略模式角色 上下…

策略模式

  • 策略模式对应与解决某一个问题的一个算法族,允许用户从该算法族中任选一个算法解决某一问题,同时可以方便的更换算法或者增加新的算法。并且由客户端决定调用哪个算法。

本质

  • 分离算法,选择实现;

策略模式角色

  • 上下文类(Context): 维护了一个策略类的引用,并将客户端的请求委托给具体策略类处理;
  • 抽象策略类(Strategy): 定义了具体的算法方法;
  • 具体策略类(ConcreteStrategy): 对抽象策略类的算法具体实现;

开发中常见的场景

  • spring框架中,Resource接口,资源访问策略;
  • springmvc框架中,controller方法入参解析
  • shiro框架中,权限的认证策略;

场景

  • 某个市场人员接到单后的报价策略(CRM系统中常见问题)。报价策略很复杂,可以简单作如下分类:
    • 普通客户小批量报价
    • 普通客户大批量报价
    • 老客户小排量报价
    • 老客户大批量报价
  • 具体选用哪个报价策略,这需要根据实际情况来确定。这时候,我们采用策略模式即可。

代码实现

  • 抽象策略类(Strategy)
/*** 抽象算法 接口*/
public interface  Strategy {double getPrice(double standardPrice);
}
  • 具体策略类(ConcreteStrategy)
/*** 新客户小批量*/
public class NewCustomerFewStrategy implements Strategy{@Overridepublic double getPrice(double standardPrice) {System.out.println("不好意思,不打折,原件");return standardPrice;}	
}
/*** 新客户大批量*/
public class newCustomermanyStrategy implements Strategy{@Overridepublic double getPrice(double standardPrice) {System.out.println("九折");return standardPrice*0.9;}	
}
/*** 老客户小批量*/
public class OldCustomerFewStrategy implements Strategy{@Overridepublic double getPrice(double standardPrice) {System.out.println("八五折");return standardPrice*0.85;}	
}
/*** 老客户大批量*/
public class OldCustomermanyStrategy implements Strategy{@Overridepublic double getPrice(double standardPrice) {System.out.println("七折");		return standardPrice*0.7;	}	
}
  • 上下文类(Context)
/*** 负责和具体的策略类交互* 这样的话,具体的算法和直接的客户端调用分离了,使得算法可以独立于客户端独立的变化*/
public class Context {private Strategy strategy;public Context(Strategy strategy) {this.strategy = strategy;}public void setStrategy(Strategy strategy) {this.strategy = strategy;}public void PrintPrice(double s){System.out.println("你该报价:"+strategy.getPrice(s));}	
}
  • 客户端调用
public static void main(String[] args) {Strategy st=new OldCustomermanyStrategy();Context ct=new Context(st);ct.PrintPrice(999);
}



更多设计模式学习:

          设计模式(1):介绍
          设计模式(2):单例模式
          设计模式(3):工厂模式
          设计模式(4):建造者模式
          设计模式(5):原型模式
          设计模式(6):桥接模式
          设计模式(7):装饰器模式
          设计模式(8):组合模式
          设计模式(9):外观模式
          设计模式(10):享元模式
          设计模式(11):适配器模式
          设计模式(12):代理模式
          设计模式(13):模板方法模式
          设计模式(14):命令模式
          设计模式(15):迭代器模式
          设计模式(16):观察者模式
          设计模式(17):中介者模式
          设计模式(18):状态模式
          设计模式持续更新中…

http://www.yayakq.cn/news/424921/

相关文章:

  • 免费ppt模板下载网盘通辽网站seo
  • 网站改版影响排名成都旧房改造装修公司哪家好
  • 惠州做网站多少钱太原市建设工程安全监督站网站
  • 具备网站维护与建设能力网站开发开始阶段的主要任务包括( )。
  • 网站主体备案号什么网站免费做推广
  • 做网站的厉害还是黑网站的厉害广州:推动优化防控措施落
  • 北京做的比较好的网站公司新乡市网站建设有哪些公司
  • 樟树市建设局网站企业名录下载
  • 网站开发职业前景评估一个虚拟空间做两个网站
  • 湖南做网站 f磐石网络推广计划和推广单元什么区别
  • 做网站上传空间什么意思网站title keyword description
  • 网站设计的机构百度一直不收录网站
  • 国家商标查询官方网站偷的网站怎么做seo
  • 清廉医院建设网站网站设计目的怎么写
  • 做图表好用网站或软件网站建设对企业很重要
  • 如何制作课程网站模板下载地址室内设计师网名
  • 移动网站 模板电商运营的核心公式
  • 建行官网网站网页制作源代码
  • 网站开发技术发展历程室内设计效果图手绘图
  • 网站开发工作怎么样网站备案起名要求
  • 做设计什么设计比较好的网站wordpress安装路径
  • 响应式网站是做列表中国分类信息平台
  • asp.net 网站开发实例石龙网站开发
  • 聊城网站建设策划建设公司四川营销网站建设
  • 晋中网站建设哪家强产品开发流程文件
  • 网站推广的岗位要求商品网站建设方案
  • 网站设计工具更好的做网站wordpress博客占用cpu
  • 生成网站 目录徐州市建设局官方网站
  • 机械模板网站wordpress主题4mudi
  • 教育培训机构营销方案模版网站如何优化