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

做网站先得注册域名吗上海十大营销策划公司排名

做网站先得注册域名吗,上海十大营销策划公司排名,常见的网页设计工具,做动物网站的素材设计模式学习(二)工厂模式——简单工厂模式 前言简单工厂模式简介示例优点缺点使用场景 前言 工厂模式是一种常用的设计模式,属于创建型模式之一。它的主要目的是为了解耦组件之间的依赖关系。通过使用工厂模式,系统中的具体类的…

设计模式学习(二)工厂模式——简单工厂模式

  • 前言
  • 简单工厂模式
    • 简介
    • 示例
    • 优点
    • 缺点
    • 使用场景

前言

工厂模式是一种常用的设计模式,属于创建型模式之一。它的主要目的是为了解耦组件之间的依赖关系。通过使用工厂模式,系统中的具体类的实例化过程可以被抽象出来,从而使得系统更加模块化,增强了系统的可维护性和可扩展性。

工厂模式可以分为三种类型:简单工厂模式,工厂方法模式和抽象工厂模式。本文先讨论简单工厂模式。

简单工厂模式

简介

简单工厂模式是工厂模式中的一个便捷实现,是通过一个单一的静态方法来创建不同类型的对象,根据传入参数的不同,可以返回不同类的实例。

示例

抽象相机类(接口类):CameraDevice
具体相机类:BaslerCameraDevice,SickCameraDevice,HuarayCameraDevice

简单工厂类:CameraDeviceFactory

UML类图如下:
在这里插入图片描述

代码如下:

class CameraDevice
{
public:CameraDevice();virtual ~CameraDevice() = 0;virtual bool Init();virtual bool OpenDevice() = 0;
};class BaslerCameraDevice : public CameraDevice
{
public:~BaslerCameraDevice() override;bool Init() override;bool OpenDevice() override;
};class HuarayCameraDevice : public CameraDevice
{
public:~HuarayCameraDevice() override;bool Init() override;bool OpenDevice() override;
};class SickCameraDevice : public CameraDevice
{
public:~SickCameraDevice() override;bool Init() override;bool OpenDevice() override;
};class CameraDeviceFactory {
public:enum CameraType{BASLER,HUARAY,SICK};static std::shared_ptr<CameraDevice> CreateCamera(CameraType type) {switch (type) {case BASLER:return std::make_shared<BaslerCameraDevice>();case HUARAY:return std::make_shared<HuarayCameraDevice>();case SICK:return std::make_shared<SickCameraDevice>();default:return nullptr;}}
};int main()
{CameraDeviceFactory::CameraType type = CameraDeviceFactory::BASLER;std::shared_ptr<CameraDevice> camera = CameraDeviceFactory::CreateCamera(type);return 0;	
}

优点

  • 调用简单:将对象的创建逻辑集中到了简单工厂类中,客户端只需要与工厂类进行交互,而无需关注具体对象的创建过程,降低了客户端代码的复杂性。
  • 解耦:客户端代码与具体对象解耦,可以通过工厂类创建不同的对象,而无需修改客户端代码,提高了代码的灵活性和可扩展性。

缺点

  • 违反开闭原则:对于每个新增的具体产品,都需要修改工厂类的创建逻辑,违反了开闭原则。
  • 扩展困难:若产品创建的过程复杂,当产品种类增多可能导致工厂类的代码过于臃肿,不宜与扩展和维护。

使用场景

  • 产品类型相对固定:当系统中的对象种类不多且不经常变化时,使用简单工厂模式非常合适。因为在这种情况下,向工厂类添加新的产品类型并不频繁,也就不会经常违反开闭原则。
  • 隐藏对象创建细节:当客户端只是需要产品的接口而不关心具体实现时,简单工厂可以隐藏对象的创建细节,客户端只需通过工厂接口请求其需要的对象即可,而无需关心对象是如何被创建、组装的。
  • 对象创建过程简单:当需要创建的对象逻辑比较简单,不涉及复杂的条件判断或算法时,可以使用简单工厂模式
http://www.dt0577.cn/news/50701.html

相关文章:

  • 西城区网站建设seo搜索引擎优化方法
  • 免费素材视频网站广州网站优化多少钱
  • 农机公司网站建设重庆seo杨洋
  • 中国做网站的公司手机百度云网页版登录
  • 品牌的手机网站制作优化网站视频
  • 如何把物流做免费网站英语seo
  • 做企业免费网站哪个好些适合网络营销的产品
  • 能自己做谱子的网站2345纯净版推广包
  • 做网页要去哪个网站产品营销推广策略
  • 网页设计难还是网站建设南常德论坛网站
  • 江门市建设银行网站百度推广案例及效果
  • 加工厂网站建设上海专业优化排名工具
  • 营销型网站建设xywlcn淘宝搜索关键词排名查询工具
  • 什么网站可以免费做宣传seo站长工具查询
  • 英文版网站建设方案网址大全实用网址
  • 温州网站建设和运营谷歌商店下载官方正版
  • net域名做企业网站怎么样拓客引流推广
  • 律师做推广的网站佛山做网络优化的公司
  • 网站开发用框架开发的优缺点百度seo和谷歌seo有什么区别
  • 如何做网站登录界面怎么让关键词快速排名首页
  • 建设工程信息网官网新网站沧州网络推广外包公司
  • wordpress视频安装教程怎么关键词优化网站
  • 网站怎么做背景图片seo基础入门教程
  • 做单平台有哪些seo网络推广优势
  • 按键精灵官方网站怎么做脚本设计网站
  • 深圳实惠的专业建站公司广告联盟官网
  • 承德网站制作公司百度图片识别搜索引擎
  • 深圳网站建设公司推荐营销网站建设哪家快
  • 买了个服务器 怎么做网站百度大数据分析工具
  • 自己开网店怎么找货源网站优化排名软件网