设计模式第一章 简单工厂模式
2014-10-31 13:41
211 查看
最近打算学习一下设计模式,但看完总是记不住,也不能好好坚持看,所以打算写一片帖子,每天记录一下学到的知识。
简单工厂模式用到了面向对象的三大特征:封装、继承、多态,实现了程序的可扩展,可复用,可维护,使程序的灵活性更高。
下面是demo,实现了加法和减法。有一个基类Operation,加法AddOperation和减法SubOperation继承自基类,OperationFactory根据填写的运算符号创建对应的运算类,之后再调各自的运算方法。
Operation类:
public class Operation {
double numberA;
double numberB;
public double operate() {
double result = 0;
return result;
}
}
加法类:
public class AddOperation extends Operation {
@Override
public double operate() {
return numberA+numberB;
}
}
减法类:
public class SubOperation extends Operation {
@Override
public double operate() {
return numberA-numberB;
}
}
工厂类:
public class OperationFactory {
public static Operation createOperate(String operator){
Operation opera=null;
switch (operator) {
case "+":
opera=new AddOperation();
break;
case "-":
opera=new SubOperation();
break;
default:
break;
}
return opera;
}
}
界面显示代码:
Operation operation=OperationFactory.createOperate(opera);//opera为运算符号
operation.numberA=numA;//numA为参数1
operation.numberB=numB;//numB为参数2
double res=operation.operate();//计算结果
如果有什么不对的,欢迎更正指出。
简单工厂模式用到了面向对象的三大特征:封装、继承、多态,实现了程序的可扩展,可复用,可维护,使程序的灵活性更高。
下面是demo,实现了加法和减法。有一个基类Operation,加法AddOperation和减法SubOperation继承自基类,OperationFactory根据填写的运算符号创建对应的运算类,之后再调各自的运算方法。
Operation类:
public class Operation {
double numberA;
double numberB;
public double operate() {
double result = 0;
return result;
}
}
加法类:
public class AddOperation extends Operation {
@Override
public double operate() {
return numberA+numberB;
}
}
减法类:
public class SubOperation extends Operation {
@Override
public double operate() {
return numberA-numberB;
}
}
工厂类:
public class OperationFactory {
public static Operation createOperate(String operator){
Operation opera=null;
switch (operator) {
case "+":
opera=new AddOperation();
break;
case "-":
opera=new SubOperation();
break;
default:
break;
}
return opera;
}
}
界面显示代码:
Operation operation=OperationFactory.createOperate(opera);//opera为运算符号
operation.numberA=numA;//numA为参数1
operation.numberB=numB;//numB为参数2
double res=operation.operate();//计算结果
如果有什么不对的,欢迎更正指出。
相关文章推荐
- 《Android之大话设计模式》--设计模式 创建型模式 第一章:简单工厂模式
- 《Android之大话设计模式》--设计模式 创建型模式 第一章:简单工厂模式
- 《Android之大话设计模式》--设计模式 创建型模式 第一章:简单工厂模式
- C#设计模式学习笔记---简单工厂模式
- 设计模式之Factory1(简单工厂,工厂方法,抽象工厂的比较)
- 用 Delphi 学设计模式 之 简单工厂篇- -
- .NET设计模式(1): 简单工厂模式
- Dot Net 设计模式—简单工厂
- 设计模式 之 简单工厂
- 简单工厂设计模式-设计模式(1)
- 设计模式(九)[简单工厂(Simple Factory)模式]
- C#设计模式之简单工厂
- C#设计模式之简单工厂篇
- 设计模式之-简单工厂、工厂方法、抽象工厂
- 转:C#设计模式之简单工厂篇
- 第一个设计模式:简单工厂
- C#设计模式之简单工厂篇(转载)
- C#设计模式之简单工厂篇
- 简单工厂设计模式
- zt:工厂模式-简单工厂(设计模式的入门级模式—初级)