动机:业务规则频繁变化,类似结构不断重复出现
class Expression{
public int interpreter(Map<String,int> list);
}
class StringExpression extends Expression{
@Override
public int interpreter(Map<String,int> list){
return list[key];
}
}
class IntExpression extends Expression{
Expression a;
Expression b;
@Override
public int interpreter(Expression a,Expression b){
}
}
class AddIntExpression implements IntExpression{
@Override
public int interpreter(Expression left,Expression right){
return left.interpreter()+right.interpreter();
}
}
class DesIntExpression implements IntExpression{
@Override
public int interpreter(Expression left,Expression right){
return left.interpreter()-right.interpreter();
}
}
class Test{
LinkedList ll;
public int analize(String temp){
for(int i=0;i<temp.length();i++){
switch(temp.charAt(i)){
case '+':
Expression left=ll.getLast();
Expression right=new StringExpression(temp.charAt(i));
ll.addLast(new AddExpression(left,right))
break;
case '-':
Expression left=ll.getLast();
Expression right=new StringExpression(temp.charAt(i));
ll.addLast(new DesExpression(left,right))
break;
default:
ll.addLast(new StringExpression(temp.charAt(i)));
break;
}
}
}
public static void main(String args[]){
String temp="a+b-c";
int sum=analize(temp);
}
}