模式定义
工厂方法模式(Factory Method Pattern)是一种创建型设计模式,通过定义抽象工厂接口将对象创建过程延迟到子类实现,实现对象创建与使用的解耦。该模式特别适合需要动态扩展产品类型的场景。
自动驾驶感知场景分析
自动驾驶感知系统需要集成多种传感器:
- 激光雷达(LiDAR):3D点云数据采集
- 摄像头(Camera):2D图像数据采集
- 毫米波雷达(Radar):运动目标检测
- 超声波传感器(Ultrasonic):近距离障碍物检测
我们将通过工厂方法实现不同传感器的统一创建管理。
C++实现代码(含详细注释)
#include <iostream>
#include <memory>
#include <vector>
// ---------------------------- 产品体系 ----------------------------
// 抽象传感器接口
class Sensor {
public:
virtual ~Sensor() = default;
// 传感器初始化(纯虚函数)
virtual void initialize() = 0;
// 数据采集(纯虚函数)
virtual void acquireData() = 0;
// 数据处理(默认实现)
virtual void processData() {
std::cout << "[通用处理] 数据格式标准化..." << std::endl;
}
};
// 具体产品:激光雷达
class LiDAR : public Sensor {
private:
double scanFrequency; // 扫描频率参数
public:
explicit LiDAR(double freq) : scanFrequency(freq) {
}
void initialize() override {
std::cout << "[LiDAR] 初始化激光雷达,扫描频率: "
<< scanFrequency << "Hz" << std::endl;
}
void acquireData() override {
std::cout << "[LiDAR] 采集3D点云数据("
<< scanFrequency << "Hz扫描中)" << std::endl;
}
void processData() override {
Sensor

最低0.47元/天 解锁文章
9434

被折叠的 条评论
为什么被折叠?



