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

购物网站功能介绍中山网站建设制作

购物网站功能介绍,中山网站建设制作,中山网站建设中山,wordpress设置文章登录可见核心思想 策略模式#xff08;Strategy Pattern#xff09;是一种行为型设计模式#xff0c;用于定义一系列算法或策略#xff0c;将它们封装成独立的类#xff0c;并使它们可以相互替换#xff0c;而不影响客户端的代码#xff0c;提高代码的可维护性和扩展性。 结构 …核心思想 策略模式Strategy Pattern是一种行为型设计模式用于定义一系列算法或策略将它们封装成独立的类并使它们可以相互替换而不影响客户端的代码提高代码的可维护性和扩展性。 结构 1. Strategy抽象策略接口 定义一些列可供替换的算法方法。 2. ConcreteStrategy具体策略实现 实现不同的算法或行为。 3. Context上下文 持有策略对象并在需要时调用具体策略的方法。 适用场景 动态切换想使用不同的算法并希望在运行时切换。避免条件语句如 if-else 或 switch-case使用策略模式代替这些语句。需要经常扩展算法或策略新策略的引入只需要实现策略接口并添加到上下文中而不需要改动现有的算法逻辑。算法的独立性 如果某些算法或操作的实现与具体的上下文和客户端无关而仅依赖于传入的参数策略模式能很好地将算法从客户端解耦出来。 优缺点 优点 符合开闭原则无需对 Context 进行修改就能引入新的策略。运行时切换可以在运行时切换对象内的算法。解耦上下文无需关心具体的策略实现。减少 if-else 的使用避免大量条件判断提高可读性和可维护性。 缺点 增加类数量每个策略需要定义一个新的类可能会类爆炸。策略切换成本客户端必须手动指定策略无法动态适配。 实现步骤 从上下文类中找出修改频率较高的算法 也可能是用于在运行时选择某个算法变体的复杂条件运算符。声明该算法所有变体的通用策略接口。将算法逐一抽取到各自的类中 它们都必须实现策略接口。在上下文类中添加一个成员变量用于保存对于策略对象的引用。 然后提供设置器以修改该成员变量。 上下文仅可通过策略接口同策略对象进行交互 如有需要还可定义一个接口来让策略访问其数据。客户端必须将上下文类与相应策略进行关联 使上下文可以预期的方式完成其主要工作。 示例 // 抽象策略接口 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/14517758/

相关文章:

  • 自己电脑做网站 路由器wordpress网站编辑
  • 成都个人团队网站开发做化妆品网站
  • 江门网站企业信息化管理软件有哪些
  • 著名的电子商务网站在线查询企业
  • 网站内容栏由什么构成制作图片视频的软件
  • 深圳有哪些做网站的公司好建一个网站要多少钱
  • 荥阳市网站建设重庆能创科技有限公司
  • 中文域名有哪些网站企业网站的建设的目标人物是
  • 做画册的网站wordpress sql语句
  • 璧山集团网站建设傻瓜式建站软件下载
  • ps网站交互设计公司邮箱地址
  • 新建网站多少钱近两年成功的网络营销案例及分析
  • 大安市建设局网站怎么做本地化网站
  • 怎么免费建立自己的网站平台宁波江北区城市建设档案馆网站
  • 如何做网站网页流程外国ps修图网站
  • 抽奖网站开发wordpress 小程序教程
  • 设计师的素材网站中国化工建设协会网站
  • 惠州模板网站建设网站建设dqcx
  • 苏州免费网站制作图片识别 在线百度识图
  • 专业网站制作公司是如何处理一个优秀网站的做游戏钓鱼网站
  • 服装网站建设论文范文做网站学什么代码
  • 企业快速建站江苏中粟建设工程有限公司网站
  • 什么是传统网站衡阳的网站建设
  • 网站哪个公司做的比较好珠海网站建设那家好
  • 遵义企业网站建设电影网站建设方案
  • 支持微信支付的网站开发刚做的网站怎么收录
  • 什么都能买到的网站python自学要多久
  • python 网站开发the author wordpress
  • php网站进后台wordpress分类主题模板下载
  • wordpress网站统计代码做驾校题目用什么网站好