• 设计模式之简单工厂模式


    简单工厂模式


    简单工厂模式属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

        

    简单工厂模式实例:

    抽象运算类

    package com.hml.factory.simple;
    
    public abstract class Operation {
    
        private int numberA;
        private int numberB;
    
        public int getNumberA() {
            return numberA;
        }
    
        public void setNumberA(int numberA) {
            this.numberA = numberA;
        }
    
        public int getNumberB() {
            return numberB;
        }
    
        public void setNumberB(int numberB) {
            this.numberB = numberB;
        }
    
        public abstract int getResult();
    }

     加法运算类:

    package com.hml.factory.simple;
    
    public class AddOperation extends Operation {
    
        public int getResult() {
            return getNumberA() + getNumberB();
        }
    
    }

    减法类:

    package com.hml.factory.simple;
    
    public class SubOperation extends Operation {
    
        public int getResult() {
            return getNumberA() - getNumberB();
        }
    
    }

    工厂类:

    package com.hml.factory.simple;
    
    public class OperationFactory {
        public static Operation createOperate(String operate) {
            if ("+".equals(operate)) {
                return new AddOperation();
            }
    
            if ("-".equals(operate)) {
                return new SubOperation();
            }
            return null;
        }
    }

     类图:

    优点

    创建对象时通过一个标识,就可以获取希望得到的对象,有助于对象的管理
     
    缺点

    每增加一个类,需要去修改工厂类,违背开放封闭原则,如果工厂类需要创建的对象很多,则工厂类会变的很臃肿
  • 相关阅读:
    React组件传值(子传父)
    React里面的componentDidMount()钩子函数用法
    修改主键的值
    mysql 命令
    Android ContentResolver
    linux下vim命令详解
    26种基于PHP的开源博客系统
    [环境配置] 如何为Apache绑定多IP多域名
    display属性值
    link标签 rel="stylesheet"
  • 原文地址:https://www.cnblogs.com/heml/p/4608446.html
Copyright © 2020-2023  润新知