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

手机上怎么做网站创业新网站如何推广

手机上怎么做网站创业,新网站如何推广,wordpress注册协议,服装批发做哪个网站好呢文章目录 0 概念1 使用场景2 优缺点2.1 优点2.2 缺点 3 实现方式4 和其他模式的区别5 具体例子实现5.1 实现代码 0 概念 定义:定义一个算法族,并分别封装起来。策略让算法的变化独立于它的客户(这样就可在不修改上下文代码或其他策略的情况下…

文章目录

  • 0 概念
  • 1 使用场景
  • 2 优缺点
    • 2.1 优点
    • 2.2 缺点
  • 3 实现方式
  • 4 和其他模式的区别
  • 5 具体例子实现
    • 5.1 实现代码

0 概念

定义:定义一个算法族,并分别封装起来。策略让算法的变化独立于它的客户(这样就可在不修改上下文代码或其他策略的情况下,添加新算法或修改已有算法)。

上下文通过同样的通用接口与所有策略进行交互, 而该接口只需暴露一个方法来触发所选策略中封装的算法即可。

1 使用场景

1,当你想使用对象中各种不同的算法变体, 并希望能在运行时切换算法时, 可使用策略模式。

策略模式让你能够将对象关联至可以不同方式执行特定子任务的不同子对象, 从而以间接方式在运行时更改对象行为。

2,当你有许多仅在执行某些行为时略有不同的相似类时, 可使用策略模式。

策略模式让你能将不同行为抽取到一个独立类层次结构中, 并将原始类组合成同一个, 从而减少重复代码。

3,如果算法在上下文的逻辑中不是特别重要, 使用该模式能将类的业务逻辑与其算法实现细节隔离开来。

策略模式让你能将各种算法的代码、 内部数据和依赖关系与其他代码隔离开来。 不同客户端可通过一个简单接口执行算法, 并能在运行时进行切换。

4,当类中使用了复杂条件运算符以在同一算法的不同变体中切换时, 可使用该模式。

策略模式将所有继承自同样接口的算法抽取到独立类中, 因此不再需要条件语句。 原始对象并不实现所有算法的变体, 而是将执行工作委派给其中的一个独立算法对象。

2 优缺点

2.1 优点

  • 可以在运行时切换对象内的算法。
  • 可以将算法的实现和使用算法的代码隔离开来。
  • 可以使用组合来代替继承。
  • 开闭原则。 无需对上下文进行修改就能够引入新的策略。

2.2 缺点

  • 如果你的算法极少发生改变, 那么没有任何理由引入新的类和接口。 使用该模式只会让程序过于复杂。

  • 客户端必须知晓策略间的不同——它需要选择合适的策略。

  • 许多现代编程语言支持函数类型功能, 允许你在一组匿名函数中实现不同版本的算法。 这样, 你使用这些函数的方式就和使用策略对象时完全相同, 无需借助额外的类和接口来保持代码简洁。

3 实现方式

1,从上下文类中找出修改频率较高的算法 (也可能是用于在运行时选择某个算法变体的复杂条件运算符)。

2,声明该算法所有变体的通用策略接口。

3,将算法逐一抽取到各自的类中, 它们都必须实现策略接口。

4,在上下文类中添加一个成员变量用于保存对于策略对象的引用。 然后提供设置器以修改该成员变量。 上下文仅可通过策略接口同策略对象进行交互, 如有需要还可定义一个接口来让策略访问其数据。

4 和其他模式的区别

请添加图片描述

5 具体例子实现

实现要求:鸭子共有三种行为,游泳行为(所有鸭子都会),飞行行为(能飞/不能飞/具有火箭动力的飞行),叫声行为(嘎嘎叫/吱吱叫/什么都不会叫),不同具体鸭子(绿头鸭/模型鸭/…)飞行行为和叫声行为可能不一样。

⚠️:最终目标:给具体鸭的飞行行为和叫声行为添加新功能时,不会改变基类鸭和具体鸭。)

  • 1,初始想法(继承):设计基类鸭包含具体鸭的所有共有行为,具体鸭继承基类鸭后的功能,但是给基类鸭添加某些功能代码后,可能会导致具体鸭有不该有功能。
    在这里插入图片描述

  • 2,改进:把变化的部分抽取出来,设计为接口,让具体鸭继承基类鸭和飞行行为、叫声行为的接口。
    在这里插入图片描述

但是这样设计会产生大量冗余代码(很多具体鸭子的功能是相互重复的)。
在这里插入图片描述

  • 3,继续改进方法:把行为接口类基类组合/委托(存放指向接口类的指针)在基类鸭中,具体的行为在行为接口子类中,基类鸭只对子类鸭提供行为基类接口。这样更改飞行/叫声行为就不会影响到抽象鸭和具体鸭。

在这里插入图片描述

5.1 实现代码

C++、Java、Python代码实现的具体方法见此博文。

请添加图片描述

完整的代码,见Gitee仓库。

http://www.mnyf.cn/news/15842.html

相关文章:

  • 做一个企业网站的费用搜索app下载
  • 做一个简单网站搜索最多的关键词的排名
  • 晋城住房保障和城乡建设管网站大数据营销案例分析
  • wordpress momoseo比较好的优化方法
  • 个人网站介绍小程序开发
  • 茂名网站制作北京谷歌seo
  • 朝阳做网站域名检测工具
  • 太原公司网站建设软文营销怎么做
  • 大连住建局官网网站辅导机构
  • 兴扬汽车网站谁做的百度seo优化教程免费
  • 绍兴网站建设seo百度地图广告投放
  • 重庆妇科医院咨询seo引擎
  • 海南医院网站建设seo网络优化是做什么的
  • 自己弄个网站南京网站设计公司大全
  • 网站做推广企业什么叫优化关键词
  • 做一个网站需要多少钱大概费用快速关键词排名首页
  • 在线客服系统 网页版seo推广外包
  • 深圳网站设计+建设首选搜索排行
  • 博客网站需要的功能百度seo视频教程
  • 顺义网站建设报价做广告的怎么找客户
  • 怎么做自己的淘宝客网站总排行榜总点击榜总收藏榜
  • 荣昌集团网站建设软文范例大全300字
  • 张掖做网站小吃培训机构排名前十
  • wordpress 头像打岔说到很多seo人员都转行了
  • 网站建设公司需要申请icp吗千锋教育学费
  • 自己做捕鱼网站能不能挣钱网站收录免费咨询
  • 做电影网站怎么样公众号推广平台
  • 广东手机网站建设品牌互联网广告平台有哪些
  • 网站平台设计费用多少营销策略是什么意思
  • 阿里云网站备案网站建设方案书广告设计网站