浅谈简单工厂模式

简介: 浅谈简单工厂模式

🚗简单工厂模式

定义

定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类

角色

  1. 工厂角色 factory
  2. 抽象产品 product
  3. 具体产品 concreteproduct

模式类图

🍓核心代码类(demo)

举个例子:

告诉工厂需要的手机名称,然后工厂生成手机

类图

我们编写代码的顺序:

Mobile > 具体Product > MobileFactory

Mobile.java 抽象产品

public abstract class Mobile {
    protected String name;
    protected float price;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float price) {
        this.price = price;
    }
    public abstract void call();
}

MiProduct.java具体产品

public class MiProduct extends Mobile {
    public MiProduct(){
        this.name="Mi";
        this.price=3000;
    }
    @Override
    public void call() {
        System.out.println("我的小米");
    }
}

MobileFactory.java工厂

public class MobileFactory {
    public static Mobile createMobile(String name) {
        Mobile mobile = null;
        if(Objects.equals(name, "Vivo")){
            mobile = new VivoProduct();
        }else if(Objects.equals(name, "Mi")){
            mobile = new MiProduct();
        }
        return mobile;
    }
}

客户端

public class Client {
    public static void main(String[] args) {
        // 1.购买手机
        Mobile m = MobileFactory.createMobile("Vivo");
        // 2.使用手机
        m.call();
    }
}

模式优点

1.对象的创建与使用是分离的

2.客户端无需知道具体产品的类名,只需知道具体产品所对应的参数

模式缺点

  1. 工厂类集中了所有产品的创建逻辑,职责过重,一旦不能正常工作,整个系统都要受到影响
  2. 增加系统中类的个数(引入了新的工厂类),增加了系统的复杂度和理解难度
  3. 系统扩展困难,一旦添加新产品不得不修改工厂逻辑
  4. 由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构,工厂类不能得到很好地扩展

模式适用环境

  1. 工厂类负责创建的对象比较少,这样的话不会造成工厂类业务太复杂
  2. 客户端只知道传入工厂类的参数,对于如何创建对象并不关心

好啦,就到这里啦,简单工厂模式总体来说来说很容易理解的啦,若有疑问的友友欢迎评论区留言额😘

结语


相关文章
|
6月前
|
Java
简单工厂模式
简单工厂模式
37 0
|
6月前
|
Java API 数据库
工厂方法模式
工厂方法模式
37 0
|
设计模式 C++
2023-6-10-第一式工厂方法模式
2023-6-10-第一式工厂方法模式
81 0
|
6月前
|
C#
C#简单工厂模式
C#简单工厂模式
85 0
|
编译器
简单工厂模式~
简单工厂模式~
|
前端开发
简单工厂模式
简单工厂模式
79 0
|
设计模式 监控 uml
剖析工厂方法模式、从开电脑店开始
工厂类负责把实例化类时,复杂的过程透明化,同时避免大量实例化类的重复代码的出现。
剖析工厂方法模式、从开电脑店开始
|
设计模式 算法 搜索推荐
工厂方法模式的两个极端
概念:是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。
|
设计模式
工厂方法模式详细介绍
工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它提供了一种将对象的创建逻辑封装在工厂类中的方式,使得客户端代码无需直接依赖具体的类来创建对象。
99 0
|
设计模式 关系型数据库 程序员
简单工厂模式、工厂模式、抽象工厂模式
简单工厂模式、工厂模式、抽象工厂模式
135 2
简单工厂模式、工厂模式、抽象工厂模式