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

05.创建型 - 简单工厂模式(Simple Factory Pattern)

简单工厂模式(Simple Factory Pattern)

定义一个工厂类,根据传入的参数不同返回不同的实例,被创建的实例具有共同的父类或接口。

适用场景:
(1)需要创建的对象较少。
(2)客户端不关心对象的创建过程。

例: 你需要一辆汽车, 可以直接从工厂里面提货, 而不用去管这辆汽车是怎么做出来的, 以及这个汽车里面的具体实现;

它有两个关键角色组成

1.需要特定对象的实例: '汽车'

/**
* 汽车接口
*/
public interface Car {void draw();
}
/**
* 红色汽车实现
*/
public static class RedCar implements Car {@Overridepublic void draw() {System.out.println(" RedCar::draw() method.");}
}
/**
* 蓝色汽车实现
*/
public static class BlueCar implements Car {@Overridepublic void draw() {System.out.println(" BlueCar::draw() method.");}
}

2.创建汽车的工厂

/**
* 汽车工厂对象
*/
public static class CarFactory {//使用 get 方法获取不同颜色的汽车public Car get(String type){if(type == null){return null;}if(type.equalsIgnoreCase("RED")){return new BlueCar();} else if(type.equalsIgnoreCase("BLUE")){return new RedCar();}return null;}
}

3.测试

public static void main(String[] args) {CarFactory shapeFactory = new CarFactory();Car rc = shapeFactory.get("RED");rc.draw();Car bc = shapeFactory.get("BLUE");bc.draw();
}

in short 简单的不像是设计模式,说它是一种设计模式更像是一种代码习惯

http://www.jsqmd.com/news/38839/

相关文章:

  • RabbitMQ延迟队列rabbitmq_delayed_message_exchange
  • HaluMem:揭示当前AI记忆系统的系统性缺陷,系统失效率超50%
  • 团队作业2-需求规格说明书
  • Mac安装Visual Studio 2019.dmg详细步骤(附图解,小白也能懂,附安装包)
  • 20251112 正睿
  • 如何根据色带计算电阻阻值
  • 25.11.12 差分约束算法
  • 11/12
  • Linux C/C++ 学习日记(27):KCP协议(三):源码分析与使用示例 - 实践
  • 解决Cursor编辑器无法通过include path识别C++头文件的问题
  • 麒麟桌面系统2503安装openjdk21
  • 重组蛋白基础与技术概述
  • Day36(6)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01
  • E. Journey
  • Dynamics 365 Field Service跨站脚本欺骗漏洞分析
  • Linux优秀的系统--信号(3--信号的保存、阻塞)
  • 深入解析:SQL提数与数据分析指南
  • 日报11.12
  • 大家来写 ICPC 西安(没写完)
  • [译] 省略 Async 与 Await
  • 你的代码正在腐烂!你的团队正走在死亡螺旋上:技术债务积累的5个危险信号!
  • iverilog、gtkwave工具链接
  • 2025 11 12
  • 使用WiX创建Windows应用安装包 - -YADA
  • 学生信息管理系统团队项目随笔
  • Total Recall: 如何在Windows下开发输入法
  • 大数据量场景下的编辑 / 选择 / 详情优化
  • 简化Python数据结构初始化:从繁琐到优雅的进阶指南 - 详解
  • RabbitMQ相关
  • 第八天 测试用例编写