今天复习了策略模式,看到有个教程上谈到了个不错的例子,现笔记之,更多的可以参考<head first design pattern>>,
主要是一个四则运算计算器,输入数a,b,以及运算符号,之后完成四则运算。
我们首先建立一个抽象类
package org.jzkangta.strategy02;
//抽象的策略角色
public abstract class Operation {
public abstract void oper(float a,float b);
}
然后分别对加,减,乘,除继承之,实现其操作,比如加法
public class Add extends Operation{
public void oper(float a,float b){
float result=a+b;
System.out.println("相加的结果为-->"+result);
}
}
处理的运算类
public class Calc {
private Operation o;
public final static Operation add=new Add();
public final static Operation jian=new Jian();
public final static Operation cheng=new Cheng();
public final static Operation chu=new Chu();
public void oper(float a,float b){
o.oper(a, b);
}
}
具体的测试类
主要是一个四则运算计算器,输入数a,b,以及运算符号,之后完成四则运算。
我们首先建立一个抽象类
package org.jzkangta.strategy02;
//抽象的策略角色
public abstract class Operation {
public abstract void oper(float a,float b);
}
然后分别对加,减,乘,除继承之,实现其操作,比如加法
public class Add extends Operation{
public void oper(float a,float b){
float result=a+b;
System.out.println("相加的结果为-->"+result);
}
}
处理的运算类
public class Calc {
private Operation o;
public final static Operation add=new Add();
public final static Operation jian=new Jian();
public final static Operation cheng=new Cheng();
public final static Operation chu=new Chu();
public void oper(float a,float b){
o.oper(a, b);
}
}
具体的测试类
public class Test {
public static void main(String[] args) {
float a=100;
float b=25;
Calc c=new Calc();
c.add.oper(a, b);
}
}