西乡城建局网站,怎么给餐饮店做网站,你就知道首页,广东外贸网站推广公司行为型模式的名称、定义、学习难度和使用频率如下表所示#xff1a; 1.如何理解策略模式 在策略模式中#xff0c;可以定义一些独立的类来封装不同的算法#xff0c;每个类封装一种具体的算法。在这里#xff0c;每个封装算法的类都可以称之为一种策略#xff08;Strategy…行为型模式的名称、定义、学习难度和使用频率如下表所示 1.如何理解策略模式 在策略模式中可以定义一些独立的类来封装不同的算法每个类封装一种具体的算法。在这里每个封装算法的类都可以称之为一种策略Strategy。为了保证这些策略在使用时具有一致性一般会提供一个抽象的策略类来做规则的定义而每种算法则对应于一个具体策略类。 策略模式的主要目的是将算法的定义与使用分开也就是将算法的行为和环境分开。将算法的定义放在专门的策略类中每个策略类封装了一种实现算法。使用算法的环境类针对抽象策略类进行编程符合依赖倒转原则。在出现新的算法时只需要增加一个新的实现了抽象策略类的具体策略类即可。 策略模式Strategy Pattern定义一系列算法类将每一个算法封装起来并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化也称为政策模式Policy。策略模式是一种对象行为型模式。 策略模式是一个比较容易理解和使用的设计模式。策略模式是对算法的封装它把算法的责任和算法本身分割开委派给不同的对象管理。策略模式通常把一个系列的算法封装到一系列具体策略类里面作为抽象策略类的子类。 策略模式用于算法的自由切换和扩展它是应用较为广泛的设计模式之一。策略模式对应于解决某一问题的一个算法族允许用户从该算法族中任选一个算法来解决某一问题同时可以方便地更换算法或者增加新的算法。只要涉及算法的封装、复用和切换都可以考虑使用策略模式。 2.策略模式的优缺点
优点
解耦算法与客户端 提高代码复用性 符合单一职责原则、开闭原则
缺点 增加类的数量 性能开销在运行时动态切换策略可能会引入一定的性能开销尤其是在策略切换频繁的情况下。 过度设计如果系统中只有少数几个固定的算法使用策略模式可能会导致过度设计增加不必要的复杂性。 3.策略模式的使用场景 当一个系统需要在多种算法或策略中进行选择时例如一个电商平台的促销策略可能有满减、折扣、赠品等不同的策略。 当算法或策略在未来可能会经常变化或扩展时。比如一个图像压缩程序可能会支持不同的压缩算法并且后续可能会添加新的算法。 当一个类定义了多种行为并且这些行为在类的操作中以多个条件语句的形式出现。通过使用策略模式可以将这些不同的行为封装成独立的策略类消除复杂的条件判断。 以上内容为根据书本内容配合搜索引擎整理得来目的是为了学习要是有侵权的情况发生请联系我我会立即予以删除谢谢 一起成长人生是马拉松可以跑得慢但一定要在路上。