JAVA设计模式之简单工厂

简单工厂

不是标准的设计模式,但是经常使用。

定义

提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类、具体类

public interface Api{
    public void operation();
}
/*----------文件分割-------------*/
public class Api1 implements Api{
    @Override
    public void operation(){
        System.out.println("api实现1方式");
    }
}
/*----------文件分割-------------*/
public class Api2 implements Api{
    @Override
    public void operation(){
        System.out.println("api实现2方式");
    }
}

/*----------文件分割-------------*/
//可以添加更多的api实现类

简单工厂解决方案

public class Factory{
    
    public static Api createApi(String key){
        Api api = null;
        if("1".equals(key)){
            api = new Api1();
        }
        if("2".equals(key)){
            api = new Aip2();
        }
        
        /*...在工厂中提供更多新创建的实现类模板
        */ 
        return api;
    }
}

public Class Client{
    public static void main(String []args){
        //工厂中添加和删除模板不影响客户端的实现
        Api api = Factory.createApi("1");
        api.operation();
    }
}

不使用简单工厂解决方案

public Class Client{
    public static void main(String []args){
        //Api api = Factory.createApi("1");
        Api api = new Api1();
        //Api api = Factory.createApi("2");
         Api api = new Api2();
         api.operation();
    }
}

认识简单工厂

1、简单工厂的功能

可以用来创建接口、抽象类或普通类的实例

2、静态工厂

通常把简单工厂实现成工具类,也称为静态工厂

3、万能工厂

理论上可以创建任何对象,所有称为万能工厂

创建对象范围控制在独立的组件级别或模块级别

在这里插入图片描述

命名建议

1、类名 “模块名称+Factory”

2、方法名称“get/create+接口名称”

写法

方法内部主要实现的功能是"选择合适的实现类"创建实例–参数来源于client

可配置的简单工厂–参数来源于配置文件

优缺点

  1. 帮助封装
  2. 解耦
  3. 可能增加客户端的复杂度
  4. 不方便扩展子工厂

本章节附带视频已上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值