目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7092.3k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(492)
赞(0)

3.策略设计模式

策略(Strategy)设计模式,是23种设计模式(Gang of Four,GoF ,四人组)中一种。

策略设计模式有一系列相对独立的解决方案,用户根据不同情况进行选择,这种情况就可以使用策略模式。再具体点说就是有一个公共接口,再有一些列实现类,这些类封装了不同算法,根据不同的场景,选择这些不同的算法。

具体举例说明:编程中不同学科有着不同的学习路线,当我们选择学习Java时,应该按照以java学习路线学习。学习前端时,按照前端的学习路径学习。我们就以这个现实场景来讲解策略模式。

如果不使用策略模式,也可以写出来代码,这个时候应该用if...else if ...else 结构

这段代码是不复习面向对象设计原则-开闭原则(OCP,对修改关闭,对扩展开放),当我们还有其他学科的学习路线时,需要修改代码,继续添加else if。在这种场景下就可以使用策略模式。

我们先来学习下策略模式包含哪些内容。在策略设计模式中,一般包含三个角色和一个使用者:

  • 策略抽象(Strategy):里面定义公共方法
  • 具体策略(Concrete Strategy):对公共方法的具体实现。每个实现内容都不同
  • 环境(Context):添加了策略的关联对象。环境是给客户去使用的。
  • 客户:使用者

页-1(1)

策略模式代码实现

通过上面的代码可以看出来,我们后面添加Python的学习方法对代码没有影响,和Java、前端的学习方法都是相互独立的。

所以我们来总结下,策略模式的优缺点:

优点:

  • 不需要使用多重if。
  • 高内聚,低耦合,符合OCP原则,便于扩展。
  • 具体策略相互独立,客户可以根据不同情况选择不同策略,互不影响。

缺点:

  • 客户必须知道所有具体策略,才能决定使用哪个策略。
  • 当策略比较多时,具体策略会很多。

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2