当前位置: 首页 > 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.gsyq.cn/news/47920.html

相关文章:

  • RabbitMQ延迟队列rabbitmq_delayed_message_exchange
  • Mac安装Visual Studio 2019.dmg详细步骤(附图解,小白也能懂,附安装包)
  • Polygon:从入门到入门
  • Linux C/C++ 学习日记(27):KCP协议(三):源码分析与使用示例 - 实践
  • 麒麟桌面系统2503安装openjdk21
  • E. Journey
  • Linux优秀的系统--信号(3--信号的保存、阻塞)
  • 深入解析:SQL提数与数据分析指南
  • 大家来写 ICPC 西安(没写完)
  • 你的代码正在腐烂!你的团队正走在死亡螺旋上:技术债务积累的5个危险信号!
  • 使用WiX创建Windows应用安装包 - -YADA
  • 学生信息管理系统团队项目随笔
  • 第八天 测试用例编写
  • 没用的博客园页面的要素介绍
  • 结婚证识别科技:利用OCR和深度学习实现婚姻证件信息的自动提取与结构化处理
  • BOE(京东方)荣获第四届“纪念彼得德鲁克中国管理奖” 创新管理模式获权威认可
  • 青少年电子设计比赛培训笔记3
  • 使用rpmbuild将源代码制成rpm包
  • 【LVGL】进度条部件
  • Vue插值表达式
  • 好题集 (1) - LG P3978 [TJOI2015] 概率论
  • 路由基础
  • idea链接database时报错:serverTimezone
  • 题解:CF2117F Wildflower
  • UVM环境自动生成器具(2)uvmdvgen
  • 题解:CF961C Chessboard
  • 文字识别系统代码
  • 微软2025年11月补丁星期二修复1个零日漏洞和63个安全漏洞
  • Can Large Language Models Detect Rumors on Social Media?
  • P13573 [CCPC 2024 重庆站] Pico Park