您的位置:首页 > 编程语言 > Java开发

大话设计模式5 工厂方法模式 的java代码实现

2014-08-12 13:45 477 查看
1,抽象运算类

package yx.designpattern.factory;

//抽象运算类
abstract class Operation {
public double number1;
public double number2;

public double getNumber1() {
return number1;
}
public void setNumber1(double number1) {
this.number1 = number1;
}
public double getNumber2() {
return number2;
}
public void setNumber2(double number2) {
this.number2 = number2;
}

public abstract double getResult() throws Exception;

}


2,加减乘除运算类

package yx.designpattern.factory;

//加法运算类
public class OperationAdd extends Operation {

@Override
public double getResult() {
return number1+number2;
}

}


package yx.designpattern.factory;

//减法运算类
public class OperationSub extends Operation {

@Override
public double getResult() {
return number1-number2;
}

}


package yx.designpattern.factory;

//乘法运算类
public class OperationMul extends Operation {

@Override
public double getResult() {
return number1*number2;
}

}


package yx.designpattern.factory;

//除法运算类
public class OperationDiv extends Operation {

@Override
public double getResult() throws Exception {
if(number2==0){
throw new Exception("除数不能为0");
}
return number1/number2;
}

}


3,工厂接口
package yx.designpattern.factory;

// 工厂接口
public interface IFactory {
public Operation createOperation();
}


4,加减乘除工厂

package yx.designpattern.factory;

//加法工厂
public class AddFactory implements IFactory {

@Override
public Operation createOperation() {
return new OperationAdd();
}

}


package yx.designpattern.factory;

//减法工厂
public class SubFactory implements IFactory {

@Override
public Operation createOperation() {
return new OperationSub();
}

}


package yx.designpattern.factory;

//乘法工厂
public class MulFactory implements IFactory {

@Override
public Operation createOperation() {
return new OperationMul();
}

}


package yx.designpattern.factory;

//除法工厂
public class DivFactory implements IFactory {

@Override
public Operation createOperation() {
return new OperationDiv();
}

}


5,客户端测试类
package yx.designpattern.factory;

//客户端测试类
public class Test {

public static void main(String[] args) {

IFactory factory=new AddFactory();
Operation oper=factory.createOperation();
oper.number1=1;
oper.number2=2;
try {
System.out.println(oper.getResult()+"");
} catch (Exception e) {
e.printStackTrace();
}

IFactory factory1=new SubFactory();
Operation oper1=factory1.createOperation();
oper1.number1=1;
oper1.number2=2;
try {
System.out.println(oper1.getResult()+"");
} catch (Exception e) {
e.printStackTrace();
}

IFactory factory2=new MulFactory();
Operation oper2=factory2.createOperation();
oper2.number1=1;
oper2.number2=2;
try {
System.out.println(oper2.getResult()+"");
} catch (Exception e) {
e.printStackTrace();
}

IFactory factory3=new DivFactory();
Operation oper3=factory3.createOperation();
oper3.number1=1;
oper3.number2=2;
try {
System.out.println(oper3.getResult()+"");
} catch (Exception e) {
e.printStackTrace();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: