专栏首页关忆北.Java设计模式之三---工厂模式

Java设计模式之三---工厂模式

关于SpringBoot集成使用策略模式请翻阅我的另一篇博客,上边详细介绍了使用方式

基于SpringBoot的策略模式demo

三、工厂模式

定义:任何可以产生对象的方法或类,都可以称之为工厂。单例也是一种工厂----静态工厂。

  1. 一个抽象产品类
  2. 多个具体产品类
  3. 一个抽象工厂
  4. 多个具体工厂 - 每一个具体产品对应一个具体工厂
  5. 符合 - OCP开放封闭原则
优点
  1. 降低了代码耦合度,对象的生成交给子类去完成
  2. 实现了开放封闭原则 - 每次添加子产品 不需要修改原有代码
缺点
  1. 增加了代码量,每个具体产品都需要一个具体工厂
  2. 当增加抽象产品 也就是添加一个其他产品族 需要修改工厂 违背OCP

工厂模式之简单工厂

简单工厂又称静态工厂

/**
 * @author Liutx
 * @date 2020/11/30 21:38
 * @Description 生产工具工厂,工厂可以生成不同的工具对象
 */
public class VehicleFactory {
    /**
     * 自定义生产过程,前边可以加日志处理、权限处理等
     *
     * @return
     */
    public Car createCar() {
        return new Car();
    }

    public Broom createBroom() {
        //扫帚的权限控制省略
        return new Broom();
    }

    public Plane createPlane() {
        return new Plane();
    }
}
缺点
  1. 扩展性不好,没新增一种工厂,需要新增一个工厂类。违反OCP开放封闭原则

新增一个工厂方法:CarFactory

public class CarFactory {
    public Car create() {
        //日志框架
        System.out.println("a car created!");
        return new Car();
    }
}
简单工厂可以完成任意定制不同的工厂实现(生产出不同的对象),比如Car、Plane等,可以实现任意定制生产过程(可以在生成的工厂对象的逻辑中自定义权限、日志、其他业务逻辑等),但是无法实现任意定制产品一族,任意定制产品一族可以使用抽象工厂。

工厂模式之抽象工厂

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.csdn.net/weixin_42313773复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 设计模式之三(工厂方法模式)

    工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法使一个类的实例化延迟到其子类。

    aehyok
  • Java设计模式-工厂模式

    简单来说工厂模式就是帮助我们创建对象,隐藏了对象创建过程的复杂度(如类B需要调用类A,工厂类提供A类的创建接口,B只需要调用接口传入相应参数即可)、避免你辛苦的...

    蒋老湿
  • java设计模式-工厂模式

    简单工厂模式又称为静态工厂方法模式,为何称为静态工厂方法模式呢?是因为该模式主要由一个工厂类的静态方法来提供各种产品。

    会说话的丶猫
  • Java 设计模式 工厂模式

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.c...

    亦山
  • Java设计模式-工厂模式

    意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

    框架师
  • java设计模式之工厂模式【设计模式】

    工厂,就是生产各种物品的一个资源管理器,它在我们生活中是非常常见了,比如电子厂生产手机零件,芯片什么的...

    简单的程序员
  • Java设计模式——工厂模式与抽象工厂模式

    Hello大家早上好,我是阿Q,好久不见,甚为想念(窃喜)。最近一段时间一直在参与安卓项目的开发(已忙成狗),也没能抽出时间来继续为大家总结设计模式的知识,在这...

    阿Q说代码
  • JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

    在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问...

    秃头哥编程
  • Java设计模式-简单工厂模式

    1)简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中简单使用的模式

    桑鱼
  • java设计模式之工厂模式

    Tanyboye
  • Java设计模式之工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)

    在java中,创建一个对象最简单的方法就是使用new关键字。但在一些复杂的业务逻辑中,创建一个对象不只需要new一行代码就成了,可能需要一些列的初始化设置,或先...

    用户2409797
  • java设计模式之工厂模式

    工厂模式(Factory Pattern)提供了一种创建对象的方式,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象,属于创建...

    用户4361942
  • Java设计模式(一)工厂模式

    一、场景描述 仪器数据文件的格式包含Pdf、Word、Excel等多种,不同种格式的文件其数据的采集方式不同,因此定义仪器数据采集接口,并定义PDF、Excel...

    用户1637609
  • Java设计模式|简单工厂模式

    简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式由一个工厂对象决定生产出哪一种产品类的实例。

    技术从心
  • Java 设计模式(六)《工厂模式》

    在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

    星尘的一个朋友
  • java设计模式-抽象工厂模式

    抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。产品有多于一个的产品族,而系统只消费其中某一族的产品。

    会说话的丶猫
  • java设计模式之工厂模式

    1 它是一个具体的类,非接口 抽象类。有一个重要的create()方法,利用if或者 switch创建产品并返回。

    BUG弄潮儿
  • 【java设计模式】之 工厂模式

    使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式。 直接用new可以完成的不需要用工厂模式

    用户5640963
  • Java设计模式-抽象工厂模式

    抽象工厂模式,提供了一个创建一些列相关或相互依赖对象的接口,而无需指定它们具体的类

    桑鱼

扫码关注腾讯云开发者

领取腾讯云代金券