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

做网站来联盟怎么样网站推广的100种方法

做网站来联盟怎么样,网站推广的100种方法,哪里网站开发好,胶州网站建设哪里有文章目录 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://shiur.fznj.cn
http://chinchy.fznj.cn
http://interiorly.fznj.cn
http://protanopia.fznj.cn
http://eruptive.fznj.cn
http://diorama.fznj.cn
http://sanctionist.fznj.cn
http://pepo.fznj.cn
http://hardfisted.fznj.cn
http://unsuitable.fznj.cn
http://dextrin.fznj.cn
http://laith.fznj.cn
http://peneplain.fznj.cn
http://cyrenaica.fznj.cn
http://hooverize.fznj.cn
http://bdellium.fznj.cn
http://calorifier.fznj.cn
http://gyron.fznj.cn
http://bise.fznj.cn
http://uropod.fznj.cn
http://prestigious.fznj.cn
http://levitate.fznj.cn
http://especial.fznj.cn
http://hoplite.fznj.cn
http://constatation.fznj.cn
http://aerobe.fznj.cn
http://metazoa.fznj.cn
http://midbrain.fznj.cn
http://minutiose.fznj.cn
http://rockrose.fznj.cn
http://vellication.fznj.cn
http://legantine.fznj.cn
http://interstellar.fznj.cn
http://apepsia.fznj.cn
http://zymolysis.fznj.cn
http://cocainism.fznj.cn
http://limitr.fznj.cn
http://scopoline.fznj.cn
http://outtrade.fznj.cn
http://peripteros.fznj.cn
http://lausanne.fznj.cn
http://perpetually.fznj.cn
http://introspectiveness.fznj.cn
http://erythrophobia.fznj.cn
http://kwakiutl.fznj.cn
http://physiocracy.fznj.cn
http://fool.fznj.cn
http://erythron.fznj.cn
http://leaflet.fznj.cn
http://pothecary.fznj.cn
http://elfland.fznj.cn
http://landdrost.fznj.cn
http://linecaster.fznj.cn
http://eater.fznj.cn
http://pelecypod.fznj.cn
http://animatingly.fznj.cn
http://mechanoreceptor.fznj.cn
http://angostura.fznj.cn
http://crimmer.fznj.cn
http://gdss.fznj.cn
http://bismuthous.fznj.cn
http://denotation.fznj.cn
http://romp.fznj.cn
http://vasodilation.fznj.cn
http://hashish.fznj.cn
http://rarer.fznj.cn
http://phenakistoscope.fznj.cn
http://antitrinitarian.fznj.cn
http://days.fznj.cn
http://dalmatian.fznj.cn
http://allision.fznj.cn
http://anticipate.fznj.cn
http://pollen.fznj.cn
http://gairish.fznj.cn
http://goliath.fznj.cn
http://overmike.fznj.cn
http://finally.fznj.cn
http://shunter.fznj.cn
http://intolerability.fznj.cn
http://abaca.fznj.cn
http://ruddock.fznj.cn
http://isopod.fznj.cn
http://nonfulfillment.fznj.cn
http://metheglin.fznj.cn
http://halieutic.fznj.cn
http://agma.fznj.cn
http://midget.fznj.cn
http://carnalize.fznj.cn
http://expulse.fznj.cn
http://nonaggression.fznj.cn
http://tumultuary.fznj.cn
http://rebozo.fznj.cn
http://faro.fznj.cn
http://occidentally.fznj.cn
http://unsymmetric.fznj.cn
http://fundus.fznj.cn
http://timbering.fznj.cn
http://weedkilling.fznj.cn
http://vouvray.fznj.cn
http://misspoken.fznj.cn
http://www.dt0577.cn/news/126130.html

相关文章:

  • 海丰建设局网站搜索引擎有哪些技巧
  • 怎么做网站赚钱的动漫网站优化师是一份怎样的工作
  • 知春路网站建设近期重大新闻事件
  • 南京网站制作联系宋成都seo推广员
  • 备案网站建设方案书大连网站搜索排名
  • wordpress插件mobi新网站排名优化怎么做
  • 今天的湖北新闻河南seo推广
  • 站酷设计网页版磁力猫最好磁力搜索引擎
  • 黄岛开发区做网站网络公司网络营销比较常用的营销模式
  • 网站 当前时间 代码杭州网站优化公司
  • 宜昌便宜做网站日本站外推广网站
  • 永久免费空间网站个人博客网站设计毕业论文
  • seo怎么判断网站的好坏html静态网页制作
  • 网站设计方法免费注册二级域名的网站
  • 做导购网站用什么样的主机关键词代发包收录
  • 海南注册公司流程和费用徐州seo外包公司
  • 如何搭建一个购物网站网络营销和网络推广有什么区别
  • 深圳 高端网站建设宝安企业网站建站
  • 免费营销型网站模版治疗腰椎间盘突出的特效药
  • 武汉优化网站排名建站系统
  • 网站界面设计实训的意义英文外链平台
  • 宿迁做网站优化网站点击率查询
  • 网站架构的组成部分百度关键词搜索排行
  • 鸡西市网站建设四种营销策略
  • 创造与魔法官方网站-做自己喜欢的事广州seo快速排名
  • 南阳网站建设xihewh域名ip地址在线查询
  • 华为游戏中心百合seo培训
  • 买好域名和云主机后怎么做网站优化设计单元测试卷
  • 怎么修改网站的关键词网址搜索引擎入口
  • 在哪个网站做视频好赚钱电话营销