这个工厂类在这个C++视频中的意义何在?
What is the point of this factory class in this C++ video?
见此图
狗工厂类的意义何在?它所做的只是实现静态函数来创建特定类型的狗,但为什么不自己编写呢?
例如,而不是
Dog* ptr = DogFactory::createYellowDog();
为什么不呢
Dog* ptr = new YellowDog();
它更清晰,更短,更容易。
当然,在实践中你会做类似的事情
std::unique_ptr<Dog> ptr = std::make_unique(YellowDog());
但无论哪种方式,仍然比使用DogFactory要好得多。
典型的情况是Dog
是公共库接口的一部分,而YellowDog
是库提供的私有实现之一。用户代码不知道库选择的特定实现,只使用公共接口Dog
和公共工厂函数来生成实例。通过这种方式,可以在不需要对用户代码进行任何更改的情况下修改库内部YellowDog
的实现。
相关文章:
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 如何在c++中录制具有精确帧时间戳的视频
- 使用Unique_ptr确保工厂中的对象唯一
- 带有继承的C++工厂
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 如何在工厂方法中返回指向基于基础操作系统的派生类的有效指针
- 强制Qt相机视频格式
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 IMFSinkWriter 编码的视频的播放速度会根据宽度而变化
- 如何在 c++ 中通过 http 发送大型视频文件?
- 工厂方法:分配和strcpy_s的差异
- C++库和自注册类:客户端应用程序中的工厂映射为空
- 这个工厂类在这个C++视频中的意义何在?