简单工厂模式小结

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());
    

 

  

 


以上是关于简单工厂模式小结的主要内容,如果未能解决你的问题,请参考以下文章

简单工厂工厂方法抽象工厂区别

JAVA设计模式——工厂模式简单工厂模式工厂方法模式抽象工厂模式

4.工厂模式

工厂模式

工厂模式C++实现

设计模式之工厂模式C++实现