简单工厂模式小结
Posted chen-ying
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单工厂模式小结相关的知识,希望对你有一定的参考价值。
直觉地使用计算机机能理解的面向过程的方式去解决问题,
会出现耦合的问题,
是一种短期的方案,
使得程序不容易维护与拓展。
所以应该将面向对象的思想应用到程序设计当中,通过封装、继承、多态将程序的耦合度降低,
运用设计模式增强程序的灵活性,使得它易于修改与复用。
为了培养更好的编程思维与习惯,
先从设计模式的学习与使用开始,
希望有计划地学习设计模式,并且逐渐从了解到化为内用嘤嘤嘤!
一、简单工厂模式:
创建一个专门的类,使它根据情况创建不同类的对象,实现业务逻辑与界面逻辑的分离,降低耦合。
二、以实现简单计算器为例:
创建基础运算抽象类
继承抽象类,实现抽象类中的具体运算方法
创建简单工厂类,由简单工厂类根据情况选定运算方法,即选定需要创建的类对象。
abstract class Operation private double numberA=0; private double numberB=0; public double getNumberA() return numberA; public void setNumberA(double numberA) this.numberA = numberA; public double getNumberB() return numberB; public void setNumberB(double numberB) this.numberB = numberB; abstract double getResult() throws Exception; /** * 继承抽象类,实现一些具体的运算 */ class Add extends Operation @Override double getResult() return getNumberA()+getNumberB(); class Less extends Operation @Override double getResult() return getNumberA()-getNumberB(); class Mul extends Operation @Override double getResult() throws Exception if (getNumberB()!=0) return getNumberA()/getNumberB(); else throw new Exception("除数为零,不合法"); public class SimpleFactory public Operation chooseFunc (String operate) Operation operation=null; switch (operate) case "+": operation=new Add(); break; case "-": operation=new Less(); break; case "/": operation=new Mul(); break; default: System.out.println("继续扩展方法吧"); break; return operation; class Test public static void main(String[] args) throws Exception double numberA=23; double numberB=22; String[] operate="+","-","/"; SimpleFactory simpleFactory=new SimpleFactory(); Operation operation=simpleFactory.chooseFunc(operate[2]); operation.setNumberA(numberA); operation.setNumberB(numberB); System.out.println(operation.getResult());
以上是关于简单工厂模式小结的主要内容,如果未能解决你的问题,请参考以下文章