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

在哪里购买域名什么是seo优化推广

在哪里购买域名,什么是seo优化推广,网站收录大量下降,中央气象台台风网下载策略模式就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 基本概念 策略模式主要是解决多种算法相似的情况下,使用if...else所带来的复杂和难以维护。当存在系统中有多个类,但是区分它们的是只是它们的直接行为,那我们…

策略模式就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。

基本概念

策略模式主要是解决多种算法相似的情况下,使用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.strategy=strategy;}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.mmbaike.com/news/32625.html

相关文章:

  • 做网站需要看啥书百度的营销中心上班怎么样
  • 门户网站建设注意事项口碑营销渠道
  • wordpress 4.6.4青岛seo培训
  • 网站网络广告推广如何查看百度搜索指数
  • 色块网站设计网站的优化seo
  • 网站做一些流量互换网络推广技术外包
  • 在线logo设计商标免费seo推广培训费用
  • 做包装看什么网站网站快速排名公司
  • 网站怎么申请百度小程序优化关键词的步骤
  • 北京各大网站推广平台哪家好推广之家app下载
  • wordpress中的分类页seo网站快速整站优化技术
  • 淘宝客怎么做自己的网站镇江网站建设推广
  • url转发网站关键词优化排名
  • 做网站的调研报告网上推销产品的软件
  • 开利网络企业网站建设第一品牌深圳最新疫情最新消息
  • 网站建设的目的只是开展网络营销北京seo包年
  • 东莞网页制作网站专注于品牌营销服务
  • 网站建设中英语seo推广优化平台
  • 福田网站建设龙岗网站建设罗湖网站建设百度今日数据统计
  • 如何检查网站是否做cdn加速上海互联网管理系统推广公司
  • 下载网站后台自媒体推广渠道有哪些
  • 自助建站百度长尾关键词快速排名软件
  • 服装电子商务网站建设3000字1688关键词排名查询
  • 1核1g服务器做网站百度客户服务电话
  • ps做网站广州网络推广选择
  • 学校asp网站南宁网站运营优化平台
  • 合肥html5网站建设谷歌google官网入口
  • 专业做高端网站seo每日工作内容
  • 淄博网站建设推广360搜索引擎首页
  • 学做淘宝客网站有哪些互联网推广是做什么的