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

    简单工厂含义

    简单工厂模式又称静态方法模式,可以将其理解为生产对象的一个类,称为工厂类。

    解决的问题

    将“类实例化的操作”与“使用对象的操作”分开,让使用者不用知道具体参数就可以实例化出所需要的“产品”类,从而避免了在客户端代码中显式指定,同时如果代码中多处使用到这个类,修改时就只在一个地方修改就可以了,达到了解耦的效果。

    UML

    代码实现

    抽象计算类

    public interface Calculation {
        double calculate(double num1,double num2);
    }
    
    

    具体计算类--加法类

    public class PlusCalculation implements Calculation{
        @Override
        public double calculate(double num1, double num2) {
            return num1+num2;
        }
    }
    
    

    具体计算类--减法类

    public class SubCalculation implements Calculation {
    
        @Override
        public double calculate(double num1, double num2) {
            return num1-num2;
        }
    }
    
    

    工厂类

    public class CalculationFactory  {
       public static Calculation create(char ch){
           Calculation calculation= null;
           switch (ch){
               case '+':calculation =  new PlusCalculation();break;
               case '-':calculation =  new SubCalculation();break;
           }
           return calculation;
       }
    }
    

    缺点

    违背“开放关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。

    应用场景:

    1. 客户如果只知道传入工厂类的参数(用于确定实例化哪一个类的对象),对于如何创建对象的逻辑不关心时
    2. 当工厂类负责创建的对象(具体产品)比较少时
  • 相关阅读:
    7.21 高博教育 数组 内存
    【基础扎实】Python操作Excel三模块
    PAT 甲级 1012 The Best Rank
    PAT 甲级 1011  World Cup Betting
    PAT 甲级 1010 Radix
    链式线性表——实验及提升训练
    循环程序设计能力自测
    链表应用能力自测
    PAT 甲级 1009 Product of Polynomials
    1008 Elevator (20分)
  • 原文地址:https://www.cnblogs.com/zhangchenwei/p/12561900.html
Copyright © 2011-2022 走看看