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

网站建设和服务器运营湘潭网站建设开发

网站建设和服务器运营,湘潭网站建设开发,福建企业年报网上申报入口,网站开发需要的资料【设计模式】 工厂模式介绍及C代码实现 背景 在软件系统中#xff0c;经常面临着创建对象的工作#xff1b;由于需求的变化#xff0c;需要创建的对象的具体类型经常变化。 如何应对这种变化#xff1f;如何绕过常规的对象创建方法(new)#xff0c;提供一种“封装机制”来…【设计模式】 工厂模式介绍及C代码实现 背景 在软件系统中经常面临着创建对象的工作由于需求的变化需要创建的对象的具体类型经常变化。 如何应对这种变化如何绕过常规的对象创建方法(new)提供一种“封装机制”来避免客户程序和这种“具体对象创建工作”的紧耦合 定义 工厂模式是一种创建型设计模式它提供一种通用的接口来创建对象但是让子类决定实例化哪个类。工厂模式将对象的创建过程封装在一个工厂类中避免直接调用构造函数提高代码的灵活性和可维护性。工厂模式实现了依赖倒置原则即面向接口编程而不是面向实现编程。 在工厂模式中有一个抽象工厂接口定义了工厂类应该实现的方法以及一组产品接口定义了工厂类应该创建的产品的通用行为。具体的工厂类实现了抽象工厂接口用于创建具体的产品对象。 工厂模式可以分为三种不同的类型简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式只有一个工厂类它根据传入的参数来决定创建哪种类型的产品对象。工厂方法模式定义一个抽象工厂接口和一组产品接口每个具体的工厂类实现了抽象工厂接口并创建了一组具体的产品对象。抽象工厂模式定义一组抽象工厂接口和一组抽象产品接口每个具体的工厂类实现了一组抽象工厂接口每个具体的产品类实现了一组抽象产品接口。 应用场景 工厂模式适用于以下场景 需要创建复杂对象的场景可以使用工厂模式将对象的创建过程封装起来避免直接调用构造函数需要提供统一的接口来创建一组相关对象的场景可以使用工厂模式将相关对象的创建过程统一起来需要避免使用 new 关键字来创建对象的场景可以使用工厂模式来代替直接调用构造函数。   总的来说工厂模式是一种非常常用的设计模式可以提高代码的可维护性、灵活性和可扩展性因此在各种编程语言中都得到了广泛的应用。 模式结构 实现步骤 工厂模式的实现步骤如下 定义一个抽象产品接口用于定义一组产品的通用行为。 定义一个具体产品类实现抽象产品接口用于提供具体的产品实现。 定义一个抽象工厂接口用于定义工厂类应该实现的方法。 定义一个具体工厂类实现抽象工厂接口用于创建具体的产品对象。 在客户端代码中使用工厂类创建具体的产品对象。 C语言代码示例 下面是一个简单的 C 语言工厂模式的示例代码用于创建不同类型的车辆对象 #include stdio.h #include stdlib.htypedef enum {SEDAN,SUV,HATCHBACK } CarType;typedef struct {int price;char* model; } Car;Car* createCar(CarType type) {Car* car (Car*) malloc(sizeof(Car));if (car NULL) {return NULL;}switch (type) {case SEDAN:car-price 20000;car-model Sedan Car;break;case SUV:car-price 30000;car-model SUV Car;break;case HATCHBACK:car-price 15000;car-model Hatchback Car;break;default:printf(Invalid car type.\n);free(car);return NULL;}return car; }int main() {Car* sedan createCar(SEDAN);printf(Price of %s is %d.\n, sedan-model, sedan-price);free(sedan);Car* suv createCar(SUV);printf(Price of %s is %d.\n, suv-model, suv-price);free(suv);Car* hatchback createCar(HATCHBACK);printf(Price of %s is %d.\n, hatchback-model, hatchback-price);free(hatchback);Car* invalid createCar(100);if (invalid NULL) {printf(Failed to create invalid car.\n);}return 0; } 在上面的示例代码中我们定义了一个 Car 结构体表示车辆包含价格和型号两个属性以及一个 CarType 枚举类型表示不同类型的车辆。   createCar 函数是工厂函数接受一个 CarType 参数根据不同的类型创建不同的车辆对象并返回指向 Car 结构体的指针。在 main 函数中我们调用 createCar 函数创建不同类型的车辆对象并输出其价格和型号。注意当传入无效的 CarType 参数时createCar 函数会返回 NULL。最后我们需要手动释放 createCar 函数中使用 malloc 函数动态分配的内存。 总结 使用工厂模式可以提高代码的可维护性和可扩展性。当需要新增产品时只需要增加相应的产品类和工厂类而无需修改客户端代码。当需要替换产品实现时只需要修改相应的产品类和工厂类即可而无需修改客户端代码。 工厂设计模式用于隔离类对象的使用者和具体类型之间的耦合关系。面对一个经常变化的具体类型紧耦合关系(new)会导致软件的脆弱。工厂设计模式通过面向对象的手法将所要创建的具体对象工作延迟到子类从而实现一种扩展而非更改的策略较好地解决了这种紧耦合关系。工厂设计模式解决“单个对象”的需求变化。缺点在于要求创建方法/参数相同。 需要注意的是过度使用工厂模式会增加代码的复杂性和额外的开销。因此在实际使用时应该根据具体情况进行选择选择最适合的实现方式。
http://www.hkea.cn/news/14449498/

相关文章:

  • app要有网站做基础一般网站建设流程
  • 温州网站制作多少钱wordpress禁止用户注册
  • 国外建设网站情况桂林北站怎么去阳朔
  • 网站图片的像素做外贸用什么软件找客户
  • 东莞做企业网站网络推广哪家好
  • 常见电子商务网站基本模式施工者网官网
  • 单纯做seo能否提升网站流量上海做网站的
  • 龙泉网站建设wordpress 博主
  • 网站h1如何自己建设一个网站
  • 网站建设结课策划书网址的英文
  • 传奇网站模板使用石家庄做家教网站
  • 常见的网站建设技术网站文件夹没有权限
  • 网站外链价格网站长期建设 运营计划
  • 无锡网站的优化哪家好电商网站开发分销商
  • 世界网站北京网站优化关键词排名
  • ftp服务器搭建设置网站信息河北网站制作公司报价
  • 山东建设管理局网站创什么网站吸引人
  • 湘潭企业网站建设 磐石网络门户网站 建设 北京 航天
  • 提升访问境外网站速度wordpress写模版
  • 做网站前期工作果洛营销网站建设公司
  • 深圳最专业的高端网站建设如何弄微信小程序店铺
  • 公司网站域名备案wordpress推广机制
  • 做seo网站 公司周口logo设计公司
  • 个人怎么建网站网站建设开发合同书(终极版)
  • 唯品会一家做特卖的网站 分析如何建一个购物网站
  • 安全培训网站如何做网站不容易被攻击
  • 做企业门户网站要准备哪些内容app 门户网站
  • 淘宝优惠网站建设宁波外贸公司一览表
  • 建设摩托车官网官方网站wordpress怎么加背景
  • 建网站的意义在试用网站做推广