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

合肥建设网站哪个好北京建设招标信息网站

合肥建设网站哪个好,北京建设招标信息网站,花都网站设计都,策划公司经营范围有哪些策略模式就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 基本概念 策略模式主要是解决多种算法相似的情况下#xff0c;使用if...else所带来的复杂和难以维护。当存在系统中有多个类#xff0c;但是区分它们的是只是它们的直接行为#xff0c;那我们…策略模式就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 基本概念 策略模式主要是解决多种算法相似的情况下使用if...else所带来的复杂和难以维护。当存在系统中有多个类但是区分它们的是只是它们的直接行为那我们可以把这些封装成一个一个类然后进行任意替换。 策略模式存在三种角色: Strategy 策略(算法)抽象ConcreteStrategy 各种策略(算法)的具体实现Context 策略的外部封装类或者说策略的容器类。根据不同策略执行不同的行为。策略由外部环境决定。 案例 抽象类 public interface Strategy {public void encrypt(); }定义算法抽象类方法为加密。 具体实现类 AES加密 public class AESStrategy implements Strategy{Overridepublic void encrypt() {System.out.println(执行AES);}}MD5加密 public class MD5Strategy implements Strategy {Overridepublic void encrypt() {System.out.println(执行MD5);} }继承算法抽象类具体用AES、MD5方法进行实现。 外部环境封装类 public class Context {private Strategy strategy;public Context(Strategy strategy) {this.strategystrategy;}public void encrypt(){this.strategy.encrypt();} }测试类 public class MainTest {public static void main(String[] args) {Context context new Context(new AESStrategy());context.encrypt();} } 小改一下 上面测试使用的时候需要自己新建一个实例阅读性不够好所以就重新用枚举类修改一下。 算法枚举类 public enum StrategyEnums {MD5(MD5算法){Overridepublic Class? getStrategyClass() {return MD5Strategy.class;}},AES(AES算法){Overridepublic Class? getStrategyClass() {return AESStrategy.class;} };public abstract Class? getStrategyClass();private String className;StrategyEnums(){}StrategyEnums(String className){this.className className;}public String getClassName(){return className;} }枚举方法返回算法具体实现类的Class并加上类的算法描述。 public class Context {private Strategy strategy;public Context(StrategyEnums enums) {try {this.strategy (Strategy) enums.getStrategyClass().newInstance();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}public void encrypt(){this.strategy.encrypt();} }包装类的参数改为枚举值根据枚举值来构建实例。 public class MainTest {public static void main(String[] args) {Context context new Context(StrategyEnums.AES);context.encrypt();} }测试可用但是这样的话就是需要同时维护枚举类新构建一个算法具体类同时要维护枚举类不过就是增加了可读性。 总结 使用策略方式可以提供良好的扩展性、避免大量的if...else的条件判断算法可以自由切换。当遇到多个类似的算法策略可以考虑策略模式。
http://www.hkea.cn/news/14396237/

相关文章:

  • 网站开发薪水大一html网页制作期末源代码
  • 西安免费做网站哪家好汽车网站案例网页设计
  • 东莞做创意网站公司网站建设行为规定
  • 网站建设初步认识的实训体会免费下载网页模板
  • 自己做网站 最好的软件下载有什么做服装的网站吗
  • 北京网站建设北京做网站的注意点
  • 贵州遵义知名网站建设室内设计效果图高清
  • 潮州南桥市场中国建设银行网站深圳短视频推广收费
  • 万户网站建设搜狗推广效果好吗
  • qq中心官方网站灯光照明网站建设
  • 小型企业网站开发现状类似k站的网站
  • 免费建网站软件python语言特点有哪些
  • 网站建设评审会机关网站建设和运行情况汇报
  • 网站建设品牌阿里 wordpress 安装
  • 简洁的网站模板网站建设板块如何分类
  • 官网的网站设计公司长沙网站seo技巧
  • 福建建设银行官方网站网站备案都审核什么资料
  • 上海龙元建设网站如何建设网站教程视屏
  • 邢台做网站优化费用企业为什么网站建设
  • 台州网站推广做外贸网站那个平台好
  • 如何增强网站的安全性手机软件开发公司简介
  • 建立一个公司网站 宣传企业文化优弊端中铁航空港建设集团网站
  • 自己做网站怎么做的企业网站优化搜行者seo
  • 网站后台欢迎界面寓意前程似锦的工程公司名字
  • 西安建网站网站推广wordpress 禁止评论
  • 云南建设银行招聘网站中国十大房地产公司排名
  • 做外贸网站做成哪种形式好宿州网站建设报价
  • 台州椒江网站建设wordpress mysql扩展
  • 做公益网站的原因南山网站建设找哪家公司好
  • ps怎么做网站logo房屋装修效果图整套