Java设计模式——简单工厂模式

新手小白自学,大佬勿喷。

 一 、简单概述“什么是简单工厂模式”

        简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。
        在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

二、简单工厂模式UML图及简单解释

我们都知道工厂是根据产品的图纸生产产品的,在简单工厂模式中,工厂类就是专门负责创建其它类的实例的类,所以说简单工厂模式是属于创建型模式的一种,他的核心角色是这个工厂类,它可以根据参数来返回不同类的实例,即他知道每一个产品,他决定哪一个产品类型应当被实例化。被创建的实例通常具有共同的父类,也表明了各种各样的产品类其实都属于同一大类,那也说明了简单工厂模式,通常是创建某一大类下面的实例的一种模式。

        现在我们来看一下简单工厂模式的类图,在类图中,有三类角色,依次是抽象产品类Product,他表明了产品的大类,下面有各种子类比如产品A,产品B,产品C等等,具体创建步骤是交给了工厂,工厂Factory()类具有createProduct()方法,根据传入的不同参数,就可以决定创建什么类型的实例,如果传入A,就生成A对应的实例,这个就是简单工厂模式(比较简单对吧)

三、简单工厂模式的代码示例

  

package com.deu.patterns;
//创建静态工厂类用来实现对产品实例的创建
public class Simplefactory {
    public static Proudct createProduct(String type){
        if(type.equals("A"))
            return new ProductA();
        else
            return new ProductB();
    }
}
//定义一个抽象类用来写出其共有的方法名称,用来规范
abstract class Proudct{
    public abstract void print();
}
//定义一个产品A的类继承大类Product()
class ProductA extends Proudct{
    public void print()
    {
        System.out.println("创建了一个产品A");
    }
}
//定义产品B,亦是如此
class ProductB extends Proudct{
    public void print()
    {
        System.out.println("创建了一个产品B");
    }
}
//在主函数中,例如我们需要创建A产品的实例,就将A的参数传入工厂类的静态createProduct()方法。
public class main {
    public static void main(String[] args) {
        Proudct proudct=Simplefactory.createProduct("A");
        proudct.print();
    }
}

四、简单工厂模式的优缺点

        实现了对象的创建和使用分离,创建完全交给工厂类来实现,客户端成员不关心怎么创建的,只关心怎么使用的,但是缺点是简单工厂类不够灵活 ,如果我们新增一个产品就要修改工厂类的方法,修改他的判断逻辑,如果产品很多的话,这个工厂类就会很复杂 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值