当前位置: 首页 > news >正文

设计模式之简单工厂模式

简单工厂模式不是一个正式的设计模式,但它是工厂模式的基础。它使用一个单独的工厂类来创建不同的对象,根据传入的参数决定创建哪种类型的对象。

简单工厂模式包含以下几个主要角色:

  • 抽象产品(Abstract Product):定义了产品的共同接口或抽象类。它可以是具体产品类的父类或接口,规定了产品对象的共同方法。
  • 具体产品(Concrete Product):实现了抽象产品接口,定义了具体产品的特定行为和属性。

  • 具体工厂(Concrete Factory):根据不同的参数决定创建哪种类型的对象。

优点

  1. 调用者只需要知道对象的名称即可创建对象。
  2. 屏蔽了产品的具体实现,调用者只关心产品的接口。

缺点

每次增加一个产品时,都需要修改具体工厂中的代码,违反了OCP开闭原则

代码案例

public class SimpleFactory {  public static Product createProduct(String type) {  //  新增其他产品就得修改代码  if ("A".equals(type)) {  return new ProductA();  } else {  return new ProductB();  }  }  
}  abstract class Product {  public abstract void show();  
}  class ProductA extends Product {  @Override  public void show() {  System.out.println("Product A");  }  
}  class ProductB extends Product {  @Override  public void show() {  System.out.println("Product B");  }  
}  class Client {  public static void main(String[] args) {  Product product = SimpleFactory.createProduct("A");  product.show();  product = SimpleFactory.createProduct("B");  product.show();  }  
}

程序输出

Product A
Product B

相关文章:

  • OSG编译wasm尝试
  • LVS-NAT 负载均衡群集
  • PHP7内核剖析 学习笔记 第九章 PHP基础语法的实现
  • 51. N-Queens
  • 【达梦】达梦数据库使用TypeHandler读取数据库时,将字段中的数据读取为数组
  • 用 Python 模拟雪花飘落效果
  • 【从零开始学习QT】快捷键、帮助文档、Qt窗口坐标体系
  • 集成均衡功能电池保护芯片在大功率移动电源的应用,创芯微CM1341-DAT、杰华特JW3312、赛微微电CW1244、中颖SH366006
  • 25平航杯复现
  • java队列
  • 通义灵码2.5——基于MCP打造我的12306火车票智能查询小助手
  • 人工智能在智能城市中的创新应用与未来趋势
  • 67常用控件_QTreeWidget的使用
  • 2024 吉林 CCPC
  • 表中如何插入数据!扩展技能边界
  • 9.5 Q1 | 北京协和医学院GBD发文 | 1990-2021 年全球、区域和国家心力衰竭负担及其根本原因
  • 外地车在北京进京证用完后该如何行驶
  • PostgreSQL查询一个表的数据
  • 【面板数据】各地区新型数字基础设施数据集(2002-2025年)
  • GPU 图形计算综述 (二):固定管线
  • 佛山网站设计定制/怎么做业务推广技巧
  • 企业做营销型网站/新东方教育培训机构
  • 不登陆不收费的网站链接/优秀企业网站欣赏
  • 做电影网站需要多大空间/湖南seo优化首选
  • 效果图参考网站/seo的优化流程
  • 做系统和做网站哪个简单一些/西安网站seo推广