创建型模式-简单工厂模式理解

文章讨论了在开发中遇到的多态业务逻辑处理问题,提出使用简单工厂模式进行优化。通过创建抽象接口和不同指标的实现类,工厂类根据输入参数动态创建相应对象,减少了if-else语句的使用。简单工厂模式的优点在于分离了对象创建和使用,但也有职责过重、系统扩展困难等缺点。适用场景是当创建的对象较少且客户端对创建过程不关心时。
摘要由CSDN通过智能技术生成

目录

1.开发问题:

2.简单工厂模式进行优化

3.优缺点


1.开发问题:

开发过程中,部分业务规则情况下,需要咱们使用多态,进行不同情况下分别,实现业务逻辑处理,

例如:假设有个模块情景分析,

简单理解就是,配置一个组合(例如基金产品),设置不同的指标,进行固定公式以及相关业务逻辑,进行分析,得出一个结果,

这时候,总的来说接口就一个,但是子类校验,根据不同指标分别使用不同的实现类吗,要加大量的if、else

if优化方式一

这时候,可以使用简单工厂模式,进行代码层次接口

2.简单工厂模式进行优化

//抽象接口:情景分析接口层
interface Analysis {
    public void calculate();
}

//实现层:指标a分析
class AnalysisIndexA implements Analysis {
    public AnalysisIndexA() {
        System.out.println("指标a分析!");
    }

    public void calculate() {
        System.out.println("指标a计算完成!");
    }
}

//实现层:指标b分析
class AnalysisIndexB implements Analysis {
    public AnalysisIndexB() {
        System.out.println("指标b分析!");
    }

    public void calculate() {
        System.out.println("指标b计算完成!");
    }
}

//工厂类
class analysisFactory {
    //静态工厂方法
    public static Analysis getanalysis(String type) {
        Analysis analysis = null;
        if (type.equalsIgnoreCase("indexA")) {
            analysis = new AnalysisIndexA();
            System.out.println("引用指标a计算对象!");
        }
        else if (type.equalsIgnoreCase("indexB")) {
            analysis = new AnalysisIndexA();
            System.out.println("引用指标b计算对象!");
        }
        return analysis;
    }
}

class Client {
    public static void main(String args[]) {
        Analysis analysis;
        //通过静态工厂方法引用不同指标对象
        analysis = analysisFactory.getanalysis("indexA"); 
        //开始进行指标计算
        analysis.calculate();
    }
}

3.优缺点

 3.1. 主要优点

       简单工厂模式的主要优点如下:

       (1) 工厂类包含必要的判断逻辑,可以决定在什么时候创建哪一个指标类的实例,客户端可以免除直接创建指标类对象的职责,而仅仅引用对象,简单工厂模式实现了对象创建和使用的分离。

       (2) 客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以在一定程度减少使用者的记忆量。

         2. 主要缺点

       简单工厂模式的主要缺点如下:

       (1) 由于工厂类集中了所有产品的创建逻辑,职责过重,一旦不能正常工作,整个系统都要受到影响。

       (2) 使用简单工厂模式势必会增加系统中类的个数(引入了新的工厂类),增加了系统的复杂度和理解难度。

       (3) 系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。

        3. 适用场景

       在以下情况下可以考虑使用简单工厂模式:

       (1) 工厂类负责创建的对象比较少,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。

       (2) 客户端只知道传入工厂类的参数,对于如何创建对象并不关心
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值