Java 深入探究讲解简单工厂模式
短信预约 -IT技能 免费直播动态提醒
1. 简单工厂介绍
简单工厂有一个具体的工厂类,可以生产不同的产品,属于创建型设计模式。
注意:简单工厂模式 不属于23种设计模式之列
2. 简单工厂类图UML
3. 简单工厂角色说明
简单工厂(SimpleFactory):是简单工厂模式的核心,负责实现创建所有实例的内部逻辑,工厂类的创建产品类的方法可以被外界直接访问,创建所需的产品对象。
抽象产品(Product):是简单工厂创建所有对象的父类,负责描述所有实例公有的公共接口
具体产品(ConcreteProduct):是简单工厂创建的具体对象
4. 代码实现
简单工厂实现:
public interface Product {
public void show();
}
public class ConcreteProduct1 implements Product {
@Override
public void show() {
System.out.println("具体产品1展示...");
}
}
public class ConcreteProduct2 implements Product {
@Override
public void show() {
System.out.println("具体产品2展示...");
}
}
public class SimpleFactory {
//提供一个方法,基于不同的参数获取不同的实例对象
public static Product getConcreteProduct(int productType) {
switch (productType) {
case Const.Product1:
return new ConcreteProduct1();
case Const.Product2:
return new ConcreteProduct2();
case Const.Product3:
return new ConcreteProduct3();
}
return null;
}
final class Const {
static final int Product1 = 1;//表示是ConcreteProduct1产品
static final int Product2 = 2;//表示是ConcreteProduct2产品
static final int Product3 = 3;//表示是ConcreteProduct3产品
}
调用方式:
//获取产品1
Product product = SimpleFactory.getConcreteProduct(Const.Product1);
product.show();
//获取产品2
Product product1 = SimpleFactory.getConcreteProduct(Const.Product2);
product1.show();
使用步骤:
- 创建抽象产品类和定义具体产品的公共接口
- 创建具体产品类,定义生产的具体产品
- 创建工厂类,通过创建静态方法根据传入不同的参数从而创建不同的具体产品的实例
- 外界通过调用工厂类的静态方法,传入不同的参数创建不同的产品实例
5. 优缺点
优点:
- 代码逻辑比较简单,工厂类包含必要的创建对象的逻辑,可以决定创建具体的产品
- 调用方无需指导所创建具体产品的类名,只需要知道参数即可
缺点:
- 简单工厂违背开闭原则,工厂类负责产品的创建职责过重,一旦新增产品需要对工厂类内部逻辑新增判断
- 系统扩展困难,产品过多会造成逻辑过于复杂
6. 使用场景
对于产品种类比较少的情况,可以考虑使用简单工厂,调用方只需要传入工厂类的参数,不需要关注如何创建的逻辑.
到此这篇关于Java 深入探究讲解简单工厂模式的文章就介绍到这了,更多相关Java 简单工厂模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341