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

网站开发所需费用明细seo综合优化公司

网站开发所需费用明细,seo综合优化公司,wordpress文库插件,做网站品牌核心思想 策略模式(Strategy Pattern)是一种行为型设计模式,用于定义一系列算法或策略,将它们封装成独立的类,并使它们可以相互替换,而不影响客户端的代码,提高代码的可维护性和扩展性。 结构 …

核心思想

  • 策略模式(Strategy Pattern)是一种行为型设计模式,用于定义一系列算法或策略,将它们封装成独立的类,并使它们可以相互替换,而不影响客户端的代码,提高代码的可维护性和扩展性。


结构

1. Strategy(抽象策略接口)

  • 定义一些列可供替换的算法方法。

2. ConcreteStrategy(具体策略实现)

  • 实现不同的算法或行为。

3. Context(上下文)

  • 持有策略对象,并在需要时调用具体策略的方法。


适用场景

  1. 动态切换:想使用不同的算法,并希望在运行时切换。
  2. 避免条件语句(如 if-elseswitch-case):使用策略模式代替这些语句。
  3. 需要经常扩展算法或策略:新策略的引入只需要实现策略接口并添加到上下文中,而不需要改动现有的算法逻辑。
  4. 算法的独立性: 如果某些算法或操作的实现与具体的上下文和客户端无关,而仅依赖于传入的参数,策略模式能很好地将算法从客户端解耦出来。

优缺点

优点:

  1. 符合开闭原则:无需对 Context 进行修改就能引入新的策略。
  2. 运行时切换:可以在运行时切换对象内的算法。
  3. 解耦:上下文无需关心具体的策略实现。
  4. 减少 if-else 的使用:避免大量条件判断,提高可读性和可维护性。

缺点:

  1. 增加类数量:每个策略需要定义一个新的类,可能会类爆炸。
  2. 策略切换成本:客户端必须手动指定策略,无法动态适配。

实现步骤

  1. 从上下文类中找出修改频率较高的算法 (也可能是用于在运行时选择某个算法变体的复杂条件运算符)。
  2. 声明该算法所有变体的通用策略接口。
  3. 将算法逐一抽取到各自的类中, 它们都必须实现策略接口。
  4. 在上下文类中添加一个成员变量用于保存对于策略对象的引用。 然后提供设置器以修改该成员变量。 上下文仅可通过策略接口同策略对象进行交互, 如有需要还可定义一个接口来让策略访问其数据。
  5. 客户端必须将上下文类与相应策略进行关联, 使上下文可以预期的方式完成其主要工作。

示例

// 抽象策略接口
public interface Strategy {void show();
}// 具体策略——A
public class StrategyA implements Strategy{@Overridepublic void show() {System.out.println("具体策略A");}
}// 具体策略——B
public class StrategyB implements Strategy{@Overridepublic void show() {System.out.println("具体策略B");}
}// 具体策略——C
public class StrategyC implements Strategy{@Overridepublic void show() {System.out.println("具体策略C");}
}// 上下文
public class SalesMan {// 持有一个抽象策略接口private Strategy strategy;// 构造方法,传入一个具体策略对象public SalesMan(Strategy strategy) {this.strategy = strategy;}// 封装后的策略方法public void salesManShow() {strategy.show();}
}// 测试类
public class Client {public static void main(String[] args) {SalesMan salesManA = new SalesMan(new StrategyA());salesManA.salesManShow();System.out.println("--------------------------------");SalesMan salesManB = new SalesMan(new StrategyB());salesManB.salesManShow();System.out.println("--------------------------------");SalesMan salesManC = new SalesMan(new StrategyC());salesManC.salesManShow();}
}

在源码中的应用


与其他模式的关系

  • 桥接模式、 状态模式和策略模式 (在某种程度上包括适配器模式) 模式的接口非常相似。 实际上, 它们都基于组合模式——即将工作委派给其他对象, 不过也各自解决了不同的问题。 模式并不只是以特定方式组织代码的配方, 你还可以使用它们来和其他开发者讨论模式所解决的问题。
  • 命令模式和策略看上去很像, 因为两者都能通过某些行为来参数化对象。 但是, 它们的意图有非常大的不同。
    • 你可以使用来将任何操作转换为对象。 操作的参数将成为对象的成员变量。 你可以通过转换来延迟操作的执行、 将操作放入队列、 保存历史命令或者向远程服务发送命令等。
    • 另一方面, 通常可用于描述完成某件事的不同方式, 让你能够在同一个上下文类中切换算法。
  • 装饰模式可让你更改对象的外表, 策略则让你能够改变其本质。
  • 模板方法模式基于继承机制: 它允许你通过扩展子类中的部分内容来改变部分算法。 策略基于组合机制: 你可以通过对相应行为提供不同的策略来改变对象的部分行为。 在类层次上运作, 因此它是静态的。 在对象层次上运作, 因此允许在运行时切换行为。
  • 状态可被视为策略的扩展。 两者都基于组合机制: 它们都通过将部分工作委派给 “帮手” 对象来改变其在不同情景下的行为。 策略使得这些对象相互之间完全独立, 它们不知道其他对象的存在。 但状态模式没有限制具体状态之间的依赖, 且允许它们自行改变在不同情景下的状态。
http://www.hkea.cn/news/748647/

相关文章:

  • 专业的网站制作公司哪家好竞价专员是做什么的
  • 海南省建设厅网站百度seo霸屏软件
  • 淄博张店做网站的公司爱站小工具圣经
  • wordpress w3seo优化自学
  • 临沂手机建站模板微信seo排名优化软件
  • 网站管理员怎么做板块建设艺人百度指数排行榜
  • 如何创建企业网站网络舆情处置的五个步骤
  • 做站长工具网站周口seo公司
  • 泉州自助建站系统地推
  • 美国 做网站免费网站建设哪家好
  • 如何做响应式布局网站seo搜索引擎优化期末及答案
  • 电脑系统优化软件十大排名北京网优化seo公司
  • 宁夏网站建设优化外贸网站优化推广
  • 开发网站开发工程师培训心得简短200字
  • 网站优化工具升上去软文营销代理
  • 北京监理协会培训网站变现流量推广app
  • 邯郸做wap网站最全bt搜索引擎入口
  • 用网站做自我介绍pptsem推广竞价托管
  • 建设网站项目的目的是什么意思营销型网站方案
  • 濮阳网站建设价格南昌seo排名收费
  • jsp做网站案例steam交易链接在哪里看
  • 做网站需要招聘内容范本信息流广告
  • 如何建公众号外贸网站建设优化
  • 怎么把网站横幅做很大东莞营销推广公司
  • 网站运营与管理实训报告松松软文平台
  • 奉化云优化seo手机网站排名优化软件
  • h5响应式集团网站推荐电商平台有哪些?
  • 企业所得税税率三个档次关键词优化快排
  • 长宁区网站建设b2b免费发布平台
  • php 个人网站网站安全检测工具