组合模式二

来源:互联网 发布:sass loader windows 编辑:程序博客网 时间:2024/06/08 03:31

composize2

public abstract class Element {public abstract double getValue();}

public class Expression extends Element{private Element e1;private Element e2;private char operator;public Expression(Element e1, Element e2, char operator) {super();this.e1 = e1;this.e2 = e2;this.operator = operator;}@Overridepublic double getValue() {switch(operator){case '+':return e1.getValue()+e2.getValue();case '-':return  e1.getValue()-e2.getValue();case '*':return  e1.getValue()*e2.getValue();case '/':return  e1.getValue()/e2.getValue();default:return 99999999999999.9;}}}

public class Number extends Element{private double num;public Number(double num){this.num=num;}@Overridepublic double getValue() {return num;}}
public class Application {public static void main(String[] args) {Number n1=new Number(3);Number n2=new Number(8);Number n3=new Number(2);Number n4=new Number(9);Number n5=new Number(7);Number n6=new Number(5);Number n7=new Number(16);Expression e1=new Expression(n5,n6,'+');Expression e2=new Expression(n4,e1,'*');Expression e3=new Expression(n2,n3,'/');Expression e4=new Expression(n1,e3,'+');Expression e5=new Expression(e4,e2,'-');Expression e6=new Expression(e5,n7,'-');System.out.println(e6.getValue());}}
原创粉丝点击