zoukankan      html  css  js  c++  java
  • 设计模式之简单工厂模式

    简单工厂模式


    简单工厂模式属于创建型模式,又叫做静态工厂方法(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;
        }
    }

     类图:

    优点

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

    每增加一个类,需要去修改工厂类,违背开放封闭原则,如果工厂类需要创建的对象很多,则工厂类会变的很臃肿
  • 相关阅读:
    js将url转换二维码
    百度地图api使用
    js字符串转日期兼容性
    Object.keys的使用
    Web App和Native App的比较
    数组转为对象
    常用meta整理
    git merge和git rebase的区别
    GitHub 翻译之 'Hello-world' 翻译
    js数据类型
  • 原文地址:https://www.cnblogs.com/heml/p/4608446.html
Copyright © 2011-2022 走看看