简单工厂模式

简单工厂模式


1.什么是简单工厂模式?(Simple Factory Pattern)
简单工厂模式,又叫做静态工厂模式(Static Factory Method),简单的说:由一个工厂对象决定创建出哪一种产品类的实例。实质是:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。(属于创建型模式,但不属于GOF23设计模式)。

简单工厂模式包含以下3个角色:
Factory(工厂角色)
Product(抽象产品角色)
ConcreteProduct(具体产品角色)

2.适用场景
  工厂类负责创建的对象比较少;客户端(应用层)只需要知道传入工厂类的参数,对于如何创建对象(逻辑)不关心。

3.优缺点
优点:只需要传入一个正确的参数,就可以获取你所需要的对象,而无需知道其细节创建。
缺点:工厂类的职责相对过重,增加新的产品,需要修改工厂类的判断逻辑,违背了开闭原则

4.简单工厂实现
在这里插入图片描述

public abstract class Product {
    //所有产品类的公共业务方法
    public void methodSame() {
        //公共方法的实现
    }
 
    //声明抽象业务方法
    public abstract void methodDiff();
}

public class ConcreteProduct extends Product{
    //实现业务方法
    public void methodDiff() {
        //业务方法的实现
    }
}

public class Factory {
    //静态工厂方法
    public static Product getProduct(String arg) {
        Product product = null;
        if (arg.equalsIgnoreCase("A")) {
            product = new ConcreteProductA();
}
        else if (arg.equalsIgnoreCase("B")) {
            product = new ConcreteProductB();
}
        return product;
    }
}

//客户端代码
public class Client {
    public static void main(String args[]) {
        Product product; 
        product = Factory.getProduct("A"); //通过工厂类创建产品对象
        product.methodSame();
        product.methodDiff();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值