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. 当工厂类负责创建的对象(具体产品)比较少时
  • 相关阅读:
    RAID
    js 网页右下角提示框
    程序方式301
    c# ListView 虚拟模式 相关操作
    asp显示出错信息
    servu 9.3.0.1破解
    Linux下红色闪烁文件问题
    服务器实现定时开关机
    php进主页出现:HTTP 错误 500(Internal Server Error):服务器尝试执行请求时遇到了意外情况。
    怎样使用yum只下载一个包而不安装呢?
  • 原文地址:https://www.cnblogs.com/zhangchenwei/p/12561900.html
Copyright © 2011-2022 走看看