首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

容易工厂

2012-10-17 
简单工厂通过实现简单的计算机功能来应用简单工厂/****************************************************

简单工厂
通过实现简单的计算机功能来应用简单工厂

/****************************************************************************************************** 个人理解:工厂的主要作用就是用于生产对象,之所以叫简单工厂,就是因为由客户端来发出指令,来指定所需要的对象。而这种指令是用参数来进行传递的。然后通过继承抽象类或接口,将对象的公共功能抽象出来。使其更加易于扩展。 *******************************************************************************************************/ /* 定义公共操作 */ public abstract class Operation {    private double numA;    private double numB;    public double getNumA() {        return numA;    }    public void setNumA(double numA) {        this.numA = numA;    }    public double getNumB() {        return numB;    }    public void setNumB(double numB) {        this.numB = numB;    }    //抽象方法,所有的运算类都实现这个方法。    public abstract double getResult(); } 

/* 加法类 */ public class Add extends Operation{    @Override    public double getResult() {        return getNumA() + getNumB();    } } 

/* 减法类 */ public class Sub extends Operation {    @Override    public double getResult() {        return getNumA()-getNumB();    } } 

/* 乘法类 */ public class Mul extends Operation {    @Override    public double getResult() {        return getNumA()*getNumB();    } } 

/* 除法类 */ public class Div extends Operation {    @Override    public double getResult() {        if(0.0 == getNumB()){        try {          throw new Exception("除数不能是0!");        } catch (Exception e) {          e.printStackTrace();        }        return 0.0;      }      return getNumA()/getNumB();   } }

/* 工厂类 */ public class SimpleFactory {    public static Operation createOperation(String operate){        Operation oper = null;        if(operate.equals("+")) oper = new Add();        if(operate.equals("-")) oper = new Sub();        if(operate.equals("*")) oper = new Mul();        if(operate.equals("/")) oper = new Div();        return oper;    } } 


/* 客户端 */ public class OperationMain {    public static void main(String[] args){        Operation oper = SimpleFactory.createOperation("+");        oper.setNumA(1.0);        oper.setNumB(2.0);        System.out.println(oper.getResult());    } } 

热点排行