文章标题

来源:互联网 发布:linux删除非空文件夹 编辑:程序博客网 时间:2024/06/08 19:38

最近在看大话设计模式,就尝试用Java来实现其中的部分代码。
1.简单工厂模式(8-11页)
1).Operation类(只实现了加法和减法)
abstract class Operation {
private double numberA;
private double numberB;

public double getNumberA() {    return numberA;}public double getNumberB() {    return numberB;}public void setNumberA(double numberA) {    this.numberA = numberA;}public void setNumberB(double numberB) {    this.numberB = numberB;}public abstract double getResult();

}

class operationAdd extends Operation {
@Override
public double getResult() {
double result;
result = this.getNumberA() + this.getNumberB();
return result;
}
}

class operationSub extends Operation {
public double getResult() {
double result;
result = this.getNumberA() - this.getNumberB();
return result;
}
}

2.OperationFactory类

public class OperationFactory {
public static Operation createOperate(String operate) {
Operation oper = null;
switch (operate) {
case “+”:
oper = new operationAdd();
break;
case “-“:
oper = new operationSub();
break;
}
return oper;
}
}

3.Test类
public class test {
public static void main(String[] args) {
Operation operAdd = OperationFactory.createOperate(“+”);
operAdd.setNumberA(1);
operAdd.setNumberB(2);
System.out.println(operation.getResult());
}
}

工厂类的作用只是“出产品”,自己不需要实例化,所以将构造和析构声明为私有(这个只适用于“简单”工厂模式)。为了调用工厂类的方法,所以将其声明为static

原创粉丝点击