策略模式
应用:
针对一种问题有多种不同的处理方式安全封装多种同一类型的操作
出现同一抽象类有多个子类,需要if-else 选择
public interface Strategy {
int sunfa(int i);
}public class Add implements Strategy{
@Override
public int sunfa(int i) {
System.out.println("add");
return 1;
}
}public class Sub implements Strategy{
@Override
public int sunfa(int i) {
System.out.println("sub");
return 0;
}
}public class CContent {
public CContent(){};
Strategy strategy;
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
public int getnum(int i){
return strategy.sunfa(i);
}
}//Test
public static void main(String[] args) {
Add strategya = new Add();
Sub strategys = new Sub();
CContent cContent= new CContent();
cContent.setStrategy(strategya);
System.out.println("suanfa:"+cContent.getnum(2));
CContent mContent= new CContent();
mContent.setStrategy(strategys);
System.out.println("suanfa:"+mContent.getnum(2));
}结果:
add
suanfa:1
sub
suanfa:0
本文介绍了策略模式的概念及其在解决同一问题存在多种处理方式时的应用。通过示例代码展示了如何定义一系列可互换的算法并将其封装,实现算法与客户端的解耦。
1285

被折叠的 条评论
为什么被折叠?



