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

wpf可以做网站吗如何下载免费的ppt模板

wpf可以做网站吗,如何下载免费的ppt模板,wordpress 代做网站,网站模板系统策略模式是一种行为设计模式#xff0c;就是定义一系列算法#xff0c;然后将每一个算法封装起来#xff0c;并使它们可相互替换。本模式通过定义一组可相互替换的算法#xff0c;实现将算法独立于使用它的用户而变化。 Strategy is a behavioral design pattern that def…策略模式是一种行为设计模式就是定义一系列算法然后将每一个算法封装起来并使它们可相互替换。本模式通过定义一组可相互替换的算法实现将算法独立于使用它的用户而变化。 Strategy is a behavioral design pattern that defines a series of algorithms, then encapsulates each algorithm and makes them interchangeable. This pattern enables algorithms to vary independently of the users who use them by defining a set of interchangeable algorithms. 结构设计 为实现一系列可相互替换的算法可定义一个公共接口然后定义一组实现该接口的具体策略这样就可在上下文中使用该接口调用具体策略上定义的算法。 Context上下文维护指向具体策略的引用且仅通过策略接口与该对象进行交流。上下文可以维护一个对策略对象的引用这符合组合设计原则。 上下文定义了一个接口以封装对策略对象的访问。如果策略对象直接暴露给外部使用会导致其内部实现细节的暴露从而增加接口使用难度。 Strategy策略基类或策略接口声明了一个上下文用于执行策略的方法。 ConcreteStrategy具体策略类实现了策略类声明的方法。 策略模式类图表示如下 伪代码实现 接下来将使用代码介绍下策略模式的实现。 // 1、抽象策略类声明执行策略的方法 public interface IStrategy {void operation(String paramStr); } // 2、具体策略类A实现策略接口声明的方法 public class ConcreteAStrategy implements IStrategy {Overridepublic void operation(String paramStr) {System.out.println(do some thing in the concrete A instance);} } // 2、具体策略类B实现策略接口声明的方法 public class ConcreteBStrategy implements IStrategy {Overridepublic void operation(String paramStr) {System.out.println(do some thing in the concrete B instance);} } // 3、策略上下文维护指向具体策略的引用且仅通过策略接口与该对象进行交流。这里提供两种使用策略类的方式。 public class StrategyContext {private static final MapString, IStrategy STRATEGY_MAP;private IStrategy strategy;static {STRATEGY_MAP new HashMap();STRATEGY_MAP.put(type A, new ConcreteAStrategy());STRATEGY_MAP.put(type B, new ConcreteBStrategy());}public StrategyContext() {}public StrategyContext(IStrategy strategy) {this.strategy strategy;}public void doSomething(String paramStr) {strategy.operation(paramStr);}public void doSomething(String strategyType, String paramStr) {IStrategy currentStrategy STRATEGY_MAP.get(strategyType);if (Objects.isNull(currentStrategy)) {throw new RuntimeException(strategy is null);}currentStrategy.operation(paramStr);} } // 4、策略模式客户端 public class StrategyClient {public void test() {StrategyContext strategyContextA new StrategyContext(new ConcreteAStrategy());strategyContextA.doSomething(TEST);StrategyContext strategyContextB new StrategyContext();strategyContextB.doSomething(type B, TEST);} }适用场景 在以下情况下可以考虑使用策略模式 (1) 如果在一个系统里面有许多类它们之间的区别仅在于它们的行为那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 (2) 一个系统需要动态地在几种算法中选择一种 可考虑使用策略模式。 策略模式能够将对象关联至可以不同方式执行特定子任务的不同子对象从而以间接方式在运行时更改对象行为。 (3) 当类中使用了复杂条件运算符(如多重的条件选择语句)以在同一算法的不同变体中切换时 可使用该模式。 策略模式可将所有继承自同样接口的算法抽取到独立类中因此可以不需要条件语句。原始对象并不实现所有算法的变体而是将执行工作委派给其中的一个独立算法对象。 (4) 不希望客户端知道复杂的、与算法相关的数据结构在具体策略类中封装算法和相关的数据结构提高算法的保密性与安全性。 策略模式让你能将各种算法的代码、 内部数据和依赖关系与其他代码隔离开来。 不同客户端可通过一个简单接口执行算法 并能在运行时进行切换。 优缺点 策略模式有以下优点 (1) 符合开闭原则。可以在不修改原有系统的基础上选择算法或行为也可以灵活地增加新的算法或行为。 (2) 定义一系列可重用的算法。策略模式提供了管理相关的算法族的办法。 (3) 使用组合来代替继承。实现支持多种算法或行为的方法。 (4) 避免使用多重条件语句。当不同的行为堆砌在一个类时很难避免使用条件语句来选择合适的行为。如果将行为封装在一个个独立的Strategy类中则可消除这些条件语句。 如使用字典的初始化从文件中读取的方式就可将策略配置移除到外部从而进一步减少不必要的代码修改。 但是策略模式也存在以下缺点 (1) 如果使用的算法极少发生改变那么没有任何理由引入新的类和接口。使用策略模式只会让程序过于复杂。 (2) 策略模式将造成产生很多策略类可以通过使用享元模式在一定程度上减少对象的数量。 (3) 许多现代编程语言支持函数类型功能允许在一组匿名函数中实现不同版本的算法。这样就可以使用这些函数来替换策略对象无需借助额外的类和接口来保持代码简洁。如在Java语言中是Lambda表达式在C语言中是函数指针。 参考 《设计模式 可复用面向对象软件的基础》 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 著, 李英军, 马晓星等译 https://design-patterns.readthedocs.io/zh_CN/latest/behavioral_patterns/strategy.html 策略模式 https://refactoringguru.cn/design-patterns/strategy 策略模式 https://www.runoob.com/design-pattern/strategy-pattern.html 策略模式 https://www.cnblogs.com/adamjwh/p/11011095.html 简说设计模式——策略模式 https://blog.csdn.net/ShuSheng0007/article/details/88085445 秒懂设计模式之策略模式
http://www.tj-hxxt.cn/news/228983.html

相关文章:

  • 深圳网站建设收费郑州招聘网
  • 南通网站建设心得网站开发行业竞争大吗
  • 外贸推广网站邮箱收费北京网页设计机构
  • 宠物发布网站模板射阳建设网站哪家好
  • 网站开发语言怎么样网站微信支付怎么做
  • 大连网页建站模板江苏省住房和城乡建设部网站
  • 网站分布想学动漫设计报什么专业
  • 网站开发者模式怎么保存dedecms 迁移 wordpress
  • 搭建一个视频网站多少钱东莞整合网站建设公司
  • 网站建设做的好极端页面 装修wordpress 主题
  • 做网站做的好的公司线上推广软件
  • 精品网站建设费用网站排名的优化
  • 怎么做加密网站代做原创毕业设计网站
  • 深圳深圳建设网站wordpress怎么链接到文件夹
  • 成都建设网站 scgckj滨海建设局官方网站
  • 猪八戒建站服务优化英语
  • 做阿里网站卖东西赚钱哈尔滨网站建设网站开发
  • 网址推荐你会感谢我的关于公司网络优化方案
  • 博物馆网站 微信 微博 建设方案考试资料网
  • 济南哪个网络公司建网站好网站推广策划方案3000字
  • 蓝田县建设局网站网站开发如何使用API
  • 网站制作与免费网站建设南京百度
  • 织梦制作手机网站模板免费下载湛江在线网
  • 网站建设费用计算联想用来网站开发笔记本
  • 专业建站公司提供详细的功能描述及报价seo搜索排名优化方法
  • 潍坊免费做网站微信兼职网站开发
  • 怎么免费上传网页网站公司网站建设策划
  • 陕西企业营销型网站免费的ui设计的网站
  • 如何由网页生成网站wordpress uehtml
  • 金融企业网站制作学校网站建设情况报告