大话设计模式-1.简单工厂模式
2014-06-15 11:15
211 查看
期末考试结束了,可以把心思用来学习了.
从网上找了好多本书,有gof的设计模式,还有一本仿照gof写的一本更易懂的设计模式,还有head first的设计模式....找到了好多..
针对我这样的 没什么逻辑思维的 选了一本 大话设计模式 作为设计模式的第一本读物 不知道会不会有第二本 最近的大部分时间就用来看这本书吧
虽然学过c++,学过java,但是写起代码来就不知道该怎么规划.其实我自己也清楚 自己顶多就是学会了 基于对象的的语言,根本谈不上面向对象,OOP编程.
让我体会书中的智慧吧..
这本书 用c#写的,我不用c# ,就尽量用 java实现书中的代码吧. 写代码是个费时费力的活.尽量自己能坚持下来. 时间不多,事情不少.Go on!
大牛们写的笔记 我是写不来的. 我觉得 学习就是一个循序渐进的过程,每个人都是从最基本的地方入手,然后慢慢思考,慢慢总结,才能体会其中的思想,
急是急不来的..
1.简单工厂模式----------> 实现 计算器
当我们需要产生计算的时候,可以先声明一个计算类,通过抽象函数 将 计算的 方法延迟到计算的子类中确定.
这么做的好处是 如果要添加一种新的运算方法 比如 乘法 开根号.....只要新增一个Operator子类,并同时修改一下工厂类就好了.
思考: 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
从网上找了好多本书,有gof的设计模式,还有一本仿照gof写的一本更易懂的设计模式,还有head first的设计模式....找到了好多..
针对我这样的 没什么逻辑思维的 选了一本 大话设计模式 作为设计模式的第一本读物 不知道会不会有第二本 最近的大部分时间就用来看这本书吧
虽然学过c++,学过java,但是写起代码来就不知道该怎么规划.其实我自己也清楚 自己顶多就是学会了 基于对象的的语言,根本谈不上面向对象,OOP编程.
让我体会书中的智慧吧..
这本书 用c#写的,我不用c# ,就尽量用 java实现书中的代码吧. 写代码是个费时费力的活.尽量自己能坚持下来. 时间不多,事情不少.Go on!
大牛们写的笔记 我是写不来的. 我觉得 学习就是一个循序渐进的过程,每个人都是从最基本的地方入手,然后慢慢思考,慢慢总结,才能体会其中的思想,
急是急不来的..
1.简单工厂模式----------> 实现 计算器
当我们需要产生计算的时候,可以先声明一个计算类,通过抽象函数 将 计算的 方法延迟到计算的子类中确定.
这么做的好处是 如果要添加一种新的运算方法 比如 乘法 开根号.....只要新增一个Operator子类,并同时修改一下工厂类就好了.
package a; public abstract class Operation { protected double a=0 ; protected double b=0 ; abstract public double GetResult() throws Exception; public double getA() { return a; } public void setA(double a) { this.a = a; } public double getB() { return b; } public void setB(double b) { this.b = b; } }
package a; public class OperatorAdd extends Operation{ public double GetResult() { // TODO Auto-generated method stub double result=0; result=a+b; return result; } }
package a; public class OperatorDiv extends Operation { @Override public double GetResult() throws Exception { // TODO Auto-generated method stub if(b==0) throw new Exception(); else return a/b; } }
package a; public class OperatorMul extends Operation { @Override public double GetResult() { // TODO Auto-generated method stub return a*b; } }
package a; public class OperatorSub extends Operation { @Override public double GetResult() { double result=0; result=a-b; return result; } }
package a; public class OperatorFactory{ public static Operation CreateOperation(String oper) { switch(oper.charAt(0)) { case '+':return new OperatorAdd(); case '-':return new OperatorSub(); case '*':return new OperatorMul(); case '/':return new OperatorDiv(); } return null; } }
package a; import java.util.Scanner; public class UI { public static void main(String []args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); double a,b;String str; System.out.println("请输入操作数1:"); a=in.nextDouble(); System.out.println("请输入操作数2:"); b=in.nextDouble(); System.out.println("请输入运算符::"); str=in.next(); Operation oper=OperatorFactory.CreateOperation(str); oper.setA(a); oper.setB(b); double result=0; try { result = oper.GetResult(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("结果:"+oper.getA()+str+oper.getB()+"="+result); } }
思考: 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
相关文章推荐
- 大话设计模式-抽象工厂模式-简单工厂模式结合
- 大话设计模式之——简单工厂模式
- 《大话设计模式》java实现之简单工厂模式
- 大话设计模式之简单工厂模式和概念介绍
- 【大话设计模式】——简单工厂模式
- 读《大话设计模式》---简单工厂模式(SimpleFactory)(二)
- 《大话设计模式》之 简单工厂模式 Delphi/C shap /JAVA 实现
- Android之大话设计模式--简单工厂模式(静态工厂方法模式)
- 大话设计模式c++实现1——简单工厂模式 Simple Factory Pattern
- 大话设计模式C++实现-第1章-简单工厂模式
- 大话设计模式学习(一)——简单工厂模式
- 大话设计模式 --- 简单工厂模式
- 大话设计模式学习之简单工厂模式与工厂方法模式的学习
- 大话设计模式--简单工厂模式
- 大话设计模式C++实现-第1章-简单工厂模式
- 《大话设计模式》之简单工厂模式
- 大话设计模式 --- 简单工厂模式
- 大话设计模式4 简单工厂模式VS工厂模式
- 大话设计模式——简单工厂模式(C++实现)
- 大话设计模式——简单工厂模式