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

侵权网站怎么做怎么寻找网站关键词并优化

侵权网站怎么做,怎么寻找网站关键词并优化,深圳创业板,网站技术介绍策略模式就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 基本概念 策略模式主要是解决多种算法相似的情况下,使用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.hkea.cn/news/566316/

相关文章:

  • 建筑设计软件有哪些优化网站建设
  • 网站开发 word文件预览医疗器械龙头股
  • 电子商务网站建设花费南宁百度seo排名价格
  • 做公司网站要注意哪些问题真正免费建站网站
  • 在线服务器代理杭州seo网络公司
  • wordpress邮件订阅seo技术外包
  • 深圳营销网站建站公司搜索引擎关键词的工具
  • 做网站如何网站考虑优化游戏推广员是诈骗吗
  • 公众号做视频网站吗关键词排名怎么做上首页
  • 重庆做网站价格优化软件下载
  • 如何做网站镜像今日最火的新闻
  • 水果网站开发所需的成本市场营销实际案例
  • 无锡市新吴区住房和建设交通局网站西安百度关键词包年
  • 网站平台方案设计seo上首页
  • 郑州做网站的联系方式搜狗友链交换
  • 一般建设一个网站多少钱怎么接广告赚钱
  • 计算机专业网站开发方向销售推广方案
  • 上海网站建设公司排名西安百度公司
  • 中国网网址是多少网站推广优化教程
  • 关于加强机关网站建设运营培训
  • dw做的网站怎么让别人看到如何建立一个网站
  • 保险网站建设优缺点seo代码优化步骤
  • 如何快速建网站百度电脑版入口
  • 山东省建设工程信息网站最近最新的新闻
  • 免费网站建设方案锦绣大地seo官网
  • 电子商务的网站建设牛排seo系统
  • 资源收费网站怎么做网站快速优化排名官网
  • 招标网哪个网站信息可靠百度站长工具网站
  • 郑州七七网站建设互联网推广公司
  • 佛山做外贸网站代理商百度收录技术