kubeflow Linxu磁盘 做推广 mysql安装 makefile object directory 前端vue框架 当前线程等待5秒 mac安装hadoop python编程练习题 idea中svn的使用 python模块 python关键字 python学习教程 python的文件操作 python时间戳 java初学者 java接口实现 java获取当前ip java接口的实例 千元以下最好的手机 联发科p70 wine模拟器 快捷精灵 msn格式 VSPD 深渊碎片 脚本列表 cf小号 透视网格工具怎么取消 oledbconnection fireworks序列号 linux添加用户 极速pdf转word 苹果内存怎么看 脚本怎么用 3dmax布尔运算 vue动态路由 sai怎么复制图层
当前位置: 首页 > 学习教程  > 编程语言

设计模式02.工厂模式-简单工厂

2020/12/28 18:49:45 文章标签:

这里写目录标题工厂模式简介类别源码Spring框架中工厂模式工厂模式优缺点优点:缺点:工厂模式 简介 1.工厂模式是为了解耦:把对象的创建和使用的过程分开。就是Class A 想调用Class B,那么只是调用B的方法,而至于B的实例化&#…

这里写目录标题

  • 工厂模式
    • 简介
    • 类别
    • 源码
    • Spring框架中工厂模式
  • 工厂模式优缺点
    • 优点:
    • 缺点:

工厂模式

简介

1.工厂模式是为了解耦:把对象的创建和使用的过程分开。就是Class A 想调用Class B,那么只是调用B的方法,而至于B的实例化,就交给工厂类。
2.工厂模式可以降低代码重复。如果创建B过程都很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。可以把这些创建对象B的代码放到工厂里统一管理。既减少了重复代码,也方便以后对B的维护。
3.工厂模式可以减少错误,因为工厂管理了对象的创建逻辑,使用者不需要知道具体的创建过程,只管使用即可,减少了使用者因为创建逻辑导致的错误。

类别

工厂模式可以分为简单工厂、工厂方法、抽象工厂、静态工厂模式
工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。

源码

@Component
public interface PaymentService {

    public void pay();
}

public class AliPaySercice implements PaymentService {
    @Override
    public void pay() {
        System.out.println("阿里支付对象...");
    }
}

public class WeChatService implements PaymentService {
    @Override
    public void pay() {
        System.out.println("微信支付对象...");
    }
}

class PayMentFactory {

    public static PaymentService getPaymentService(String payType) {
        PaymentService paymentService = null;
        switch (payType) {
            case "ali_pay":
                paymentService = new AliPaySercice();
                break;
            case "wechat_pay":
                paymentService = new WeChatService();
                break;
        }
        return paymentService;
    }
}

Spring框架中工厂模式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

工厂模式优缺点

优点:

代码结构简单。
获取产品的过程更加简单。
满足了开闭原则,即对拓展开放,对修改关闭。

缺点:

拓展较繁琐,要拓展时,需同时改动抽象工厂和工厂实现类。


本文链接: http://www.dtmao.cc/news_show_550126.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?