简单工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,这种类型的设计模式属于创建型模式 。简单工厂模式的定义
本文从一个具体的例子逐步分析,来体会简单工厂模式的应用场景和利弊@mikechen
简单工厂模式(Simple Factory),又被称为”静态工厂方法模式”,它属于类创建型模式,同属于创建型模式的还有(工厂方法模式,抽象工厂模式,单例模式,建造者模式) 。
用一个现实生活的例子更容易理解:生活中的工厂是负责生产产品的,同样在设计模式中,简单工厂模式我们可以理解为负责生产对象的一个类,称为“工厂类” 。
简单工厂模式的结构
1.工厂类
工厂角色负责实现创建所有实例的内部逻辑 。
2.抽象产品
抽象产品角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口 。
3.具体产品
具体产品角色是创建目标,所有创建的对象都充当这个角色的某个具体类的实例 。
简单工厂模式的实现
主要分为三个步骤:
1.创建抽象产品类
创建抽象产品类的作用:主要是定义具体产品的公共接口
packagecom.mikechen.java.design.factory.simple; /** * 抽象产品 * * @authormikechen */publicabstractclassProduct{ publicabstractvoidCreate(); } 2.创建具体产品类
创建具体产品类的作用:继承抽象产品类,定义生产的具体产品
packagecom.mikechen.java.design.factory.simple; /** * 描述类的作用 * * @authormikechen */publicclassConcreteProductextendsProduct{ @OverridepublicvoidCreate(){ System.out.println("生产具体的产品"); } } 3.创建工厂类
创建工厂类的作用:通过创建静态方法从而根据传入不同参数创建不同具体产品类的实例 。
packagecom.mikechen.java.design.factory.simple; /** * 工厂 * * @authormikechen */publicclassFactory{ publicstaticProduct newInstance(){ returnnewConcreteProduct(); } } 这里我做了简化,实际的情况可以根据传入的具体产品参数来实现具体的产品即可 。
简单工厂模式的优缺点
1. 优点
将创建实例的工作与使用实例的工作分开,使用者不必关心类对象如何创建,实现了解耦;
把初始化实例时的工作放到工厂里进行,使代码更容易维护 。
2. 缺点
工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响;
违背“开放 – 关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂 。
简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构 。
简单工厂模式的应用场景
1.客户如果只知道传入工厂类的参数,对于如何创建对象的逻辑不关心时;
2.客户端既不需要关心创建细节,甚至连类名都不需要记住,只需要知道类型所对应的参数
3.当工厂类负责创建的对象具体产品比较少时,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂 。
简单工厂模式的总结
1.简单工厂模式包含三个角色:
- 工厂角色负责实现创建所有实例的内部逻辑;
- 抽象产品角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口;
- 具体产品角色是创建目标,所有创建的对象都充当这个角色的某个具体类的实例 。
推荐阅读
- vivo有什么游戏手机,vivo手机支持游戏模式的游戏有哪些
- vivoy9s手机优点和缺点,vivo手机的优缺点是什么在线等
- 微信AR聊天模式,开启视频聊天新视界
- 苹果se2怎么进入刷机模式,刷机之后无法再进入刷机模式
- vivo开发者模式,vivo开发者模式怎样开启
- 家庭加工厂利润高的项目 小加工厂做什么利润高
- 贪玩蓝月传奇和传奇霸业有什么区别,开启刷屏模式的传奇背后有百亿产业
- 辉瑞制药招聘,无锡辉瑞工厂工资待遇怎样都是通过啥途径招聘操作工的
- 酷我音乐中设置播放模式的基础操作。
- 鲁大师设置节能降温模式的简单操作。