工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如Aa=new A()工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。
实现代码:
/**
* 运算类,可把一些公用参数写在此类同,以便其它实现类使用
*/
public abstract class Operation {
int numberA = 1;
int numberB = 2;
public abstract double getResult(); //返回结果
}
/**
* 加法实现类,包含具体实现方法
*/
public class Addition extends Operation{
@Override
public double getResult() {
return super.numberA + super.numberB;
}
}
/**
* 减法实现类,包含具体实现方法
*/
public class Subtraction extends Operation{
@Override
public double getResult() {
return super.numberB - super.numberA;
}
}
/**
* 工厂类,由于创建运算类
*/
public abstract class Factory {
// 创建运算类
public abstract Operation createOperation();
}
// 创建加法工厂,返回加法实现类
public class AdditionFactory extends Factory{
@Override
public Operation createOperation() {
return new Addition();
}
}
//创建减法工厂,返回减法实现类
public class SubtractionFactory extends Factory{
@Override
public Operation createOperation() {
return new Subtraction();
}
}