标签:分析 继承 简单 博客 ring spring 策略模式 重复 维护
策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。策略模式有以下优点:
策略模式是准备一组算法,并将这组算法封装到一系列的策略类里面,作为一个抽象策略类的子类。策略模式的重心不是如何实现算法,而是如何组织这些算法,从而让程序结构更加灵活,具有更好的维护性和扩展性,现在我们来分析其基本结构和实现方法。
策略模式的主要角色如下:
策略模式的结构很简单,而spring的bean注入特性让我们在spring 框架中使用策略模式很方便,在spring中,对于同一类bean不同的别名是可以注入到一个map中或者list中的,下面的代码演示了如何在spring中方便的使用策略模式
先定义一个抽象父类:
public interface Message {
/**
* 抽象策略
*/
String test(String test);
}
再定义不同的实现类
@Service("testA")
public class TestA implements Message {
@Override
String test(String test) {
return "testA:"+test;
}
}
@Service("testB")
public class TestB implements Message{
@Override
String test(String test) {
return "testB:"+test;
}
}
@Service("testC")
public class TestC implements Message{
@Override
String test(String test) {
return "testC:"+test;
}
}
然后在环境类中使用这些策略
@Service
public class Subject{
@Autowired
Map<String,Message> messageStrategy
public void check(){
Message message= messageStrategy.get("testB")
System.out.print(message.test())
}
}
以上就是一个简单的策略模式,在spring中使用该模式可以减少条件分支的代码量,而且它的扩展性也很好。
点击关注我的博客
标签:分析 继承 简单 博客 ring spring 策略模式 重复 维护
原文地址:https://www.cnblogs.com/muggle0/p/12603376.html