课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于大多数的软件开发程序员来说,掌握不同的软件设计模式能够让我们适应更多的软件开发形式,而今天我们就一起来了解一下,软件开发中策略模式的概念与优缺点。
定义:
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。(其实类似于if-else模式)
设计原则:
将一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。原理是用多态实现的。
适用场景:
系统有很多类,它们的区别仅在于行为不同,一个系统需要动态地在几种算法中选择一种。
组成:
策略模式中包含三部分:
策略(Strategy):策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法。
具体策略(ConcreteStrategy):具体策略是实现策略接口的类,具体策略实现策略接口所定义的抽象方法,即给出算法标识的具体算法。
上下文(Context):上下文是依赖于策略接口的类,即上下文包含有策略声明的变量。上下文中提供一个方法,该方法委托策略变量调用具体策略所实现的策略接口中的方法。
优缺点:
优点:符合开闭原则,增加程序的可扩展性和可维护性;避免多个if-else判断
缺点:客户端必须知道所有策略类,并自行决定使用哪一个策略类
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。