策略模式应用场所是什么? 就是在软件设计时,发现有
不同的算法(或操作过)在不同对象间经常变来变去,这是可以考虑使用策略模式。
注意是考虑用策略模式。 如果发现这些算法,不管怎么变化,总可以用
统一的较为简单的方法去调用这些算法,那么可以用策略模了。实现方法是:作一个抽象类标识为A,该类有一个统一调用其他算法的方法 标识为method(...)。 其他不同算法的 单独写一个类,并继承A,然后覆盖method(...),并在这个方法中调用具体实现了的算法。另外 要使用算法的类,都必须允许注入这些算法的公共调用方法的所在类,即上面中的A. 这样在使用时,如果发现某个类需要使用某个具体算法时,把相应算法类注入进去就可以了。
简单描述实现方法:
各自的算法用不同的类封装,但是这些类都必须继承并覆盖同一个父类,这个父类是个抽象类,他必须具有能统一调用这些算法的方法。 在使用时,哪些其他类要使用某些算法,就把这些算法的实例注入进去。当然了,使用算法的类,要注入的地方其相关类型,是这些算法的父类,而非具体算法类。
简单代码表示为:
使用模式前1 :
public method1(xx){//具体代码}
public method2(xx){//具体代码}
public method3(xx){//具体代码}
使用模式前2 :发现这些方法,都可用下面的方法进行调用
public method(xx)
使用模式 步骤1:
public abstract class A{ public method(xx)}
使用模式 步骤2:
public class B extends A {
private method1(xx) {//具体代码}
public method(xx) {method1(xx) }
}
public class C extends A {
private method2(xx) {//具体代码}
public method(xx) {method2(xx) }
}
public class D extends A {
private method2(xx) {//具体代码}
public method(xx) {method2(xx) }
}
使用模式 步骤2:
Class Use1 {
privater A a;//省略getter and setter.这表明允许注入算法的共共调用方法的所在类
public void userMethod(){a.method();}
//省略其他
}
Class Use2 {
privater A a;//省略getter and setter.这表明允许注入算法的共共调用方法的所在类
public void userMethod(){a.method();}
//省略其他
}
用户开始真正使用:
Use1 u1=new Use1();
//当发现此时u1需要使用 method2操作,
u1.setA(new C())
u1.userMethod();
说明:使用类,你可以根据需要存储N多种算法类实例,你也可以在运用类的实例化过程中,固定生成某些算法,总之根据你的需要了,可以变化。
分享到:
相关推荐
策略模式结合模板方法模式
策略模式的 C++ 代码实现, ide :XCode
所有模式都可分为类模式和对象模式两种,类模式是继承,对象模式是委托,而桥接模式和策略模式都是将任务委托给另外一个接口去实现,那么两者的区别什么呢?
深入浅出设计模式之抽象工厂模式+工厂方法模式+策略模式实现手机加工厂(加类图)
策略模式实例策略模式实例策略模式实例策略模式实例策略模式实例
设计模式中的策略模式,template模式详细讲解。
主要介绍了详解SpringBoot结合策略模式实战套路,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
策略模式策略模式策略模式
策略模式定义了方法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 还可以那家咖啡屋,记忆里很温馨,很sugar,或许很多温馨美好的回忆都是于咖啡有关的。 我们常常说设计...
55-Java设计模式之策略模式与状态模式1
这是策略模式中的一个经典实例,通过鸭子问题,能让学习者更好的了解设计模式,这也是headfirst 设计模式中用的经典实例
javascript的策略模式和代理模式简介,附代码
技术: 1. spring事件驱动(ApplicationEventPublisher) 2. 策略模式处理事件 目的: 1. 通过event,代码逻辑异步处理 2. 通过策略模式,构建具体监听实现 3. 解耦 4. 容错(降低代码块错误风险)
策略模式策略模式策略模式
设计模式 策略模式。金典模式之策略模式代码。
设计模式之禅之 工厂方法模式+策略模式 设计模式之禅之 工厂方法模式+策略模式
java 策略模式的简单小例子,可以帮助了解策略模式的使用
策略模式代码,两种方式实现,第一种,通过map存储方式,第二种,通过配置文件加反射方式
策略模式在实际项目中的应用二,该测试demo为普通项目,导入build path一下lib目录下的jar包,然后运行测试类即可在控制台看到测试结果
设计模式 ——策略模式 实验报告 详细代码 设计概要都有