策略模式
方法存在不同的实现,将不同的实现抽取出来通过策略来进行调用。
需要什么策略就调用对应的方法实现
常常我会将策略模式与HashMap一起使用,因为HashMap的get方法得到的就是不同的策略。然后调用这个策略的具体方法即可实现不同策略的调用。
策略模式的好处在于不同的功能只需要通过同一个策略进行调用而不需要将所有功能写在一个方法中,代码阅读性差且容易出bug
方法存在不同的实现,将不同的实现抽取出来通过策略来进行调用。
需要什么策略就调用对应的方法实现
常常我会将策略模式与HashMap一起使用,因为HashMap的get方法得到的就是不同的策略。然后调用这个策略的具体方法即可实现不同策略的调用。
策略模式的好处在于不同的功能只需要通过同一个策略进行调用而不需要将所有功能写在一个方法中,代码阅读性差且容易出bug
优点-各自使用封装的算法,可以容易地引入新的算法来满足相同的接口-算法的细节完全封装在 Strategy 类中,因此可以在不影响 Context 类的情况下更改算法的实现-由于实现的是同一个接口,所以策略之间可以自由切换缺点:-客户端必须知道所有的策略,了解它们之间的区别,以便选择恰当的算法
缺点:观察者之间有过多的细节依赖、提高时间消耗及程序的复杂度。如果在观察者和观察目标之间存在循环依赖,观察目标会触发它们之间进行循环调用,可能导致系统崩溃。优点观察者模式支持广播通信观察者和被观察者之间建立抽象的耦合
策略模式:指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。
策略模式(Strategy)定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。 策略模式解析: Context(应用场景): 1、需要使用ConcreteStrategy提供的算法。 2、 内部维护一个Strategy的
本篇文章介绍设计模式中行为型策略模式。
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M