看的是《大话设计模式》,第一章是简单工厂模式,下面是我的阅读笔记
简单工厂模式
1、代码规范
2、面向对象编程
可维护、可复用、可扩展、灵活性好
通过封装、继承、多态把程序的耦合度降低
容易修改并且易于复用
3、业务的封装
让业务逻辑和界面逻辑分开,降低之间的耦合度,只有分离开,才能达到容易维护或扩展
4、简单工厂模式
使用一个单独的类来做这个创造实例的过程,这就是工厂
书中是用c++实现的简单工厂模式,我打算用java实现一遍(做一个小菜要做的计算器)。
下面是项目结构:
首先是Operation类,它是所有计算类的父类。
package com.caculator; public class Operation { private double result; //结果 public double getResult(double numberA,double numberB){ return result; } }
然后依次是具体的计算类,以Add类为例。
package com.caculator; public class Add extends Operation{ @Override public double getResult(double numberA,double numberB){ double result = numberA + numberB; return result; } }
之后就是工厂类,所谓工厂类其实就是一个专门用来new对象的类(创造实例的类)。
package com.factory; import com.caculator.Add; import com.caculator.Division; import com.caculator.Minus; import com.caculator.Multi; import com.caculator.Operation; public class OperFactory { public static Operation createOperate(String operate){ Operation op = null; switch(operate){ case "+": op = new Add(); break; case "-": op = new Minus(); break; case "*": op = new Multi(); break; case "/": op = new Division(); break; } return op; } }
最后是测试类,用来测试代码:
package com.test; import com.caculator.Operation; import com.factory.OperFactory; public class Test { public static void main(String[] args){ Operation operation; double result; operation = OperFactory.createOperate("+"); result = operation.getResult(4,2); System.out.println("结果是:"+result); operation = OperFactory.createOperate("-"); result = operation.getResult(4,2); System.out.println("结果是:"+result); operation = OperFactory.createOperate("*"); result = operation.getResult(4,2); System.out.println("结果是:"+result); operation = OperFactory.createOperate("/"); result = operation.getResult(4,2); System.out.println("结果是:"+result); } }