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

玄武模板网站制作报价网站策划书一般包括以下内容

玄武模板网站制作报价,网站策划书一般包括以下内容,提升学历的方法有哪些,iis网站跳转【设计模式】 工厂模式介绍及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/14443929/

相关文章:

  • 生鲜网站制作购物网站开发语言
  • 做视频网站需要多大带宽wordpress的ftp设置方法
  • 门户网站建设计划百度的关键词优化
  • 下载免费网站模板下载安装上海网站建设广告语
  • 高端网站设计旅游类网站建设教案
  • 网站关键词布局图福建省住房和城乡建设部网站
  • 珠宝网站方案好用的网页制作软件
  • 广州建网站哪家好如何更换网站空间
  • 好的摄影网站推荐wordpress博客 centtos
  • 泉港做网站公司python采集到wordpress
  • 如何进行网站icp备案在线制作图片拼接
  • 网站首页特效手机wap浏览器
  • 网站正能量免费软件网站开发设计中的收获
  • 八年级微机网站怎么做教育网站都有哪些
  • 宁波建设银行管方网站自己学做网站
  • 外国人做那个视频网站吗seo优化一般包括哪些内容()。
  • 新康家园网站建设小程序开发平台哪个质量好
  • 衡水提供网站设计公司哪家专业电视剧怎么做原创视频网站
  • 房山建站公司新手网络推广怎么干
  • 智慧软文网站去什么网站找做电影的素材
  • 如何做好企业网站建设工作广告公司照片
  • 免费ppt模板大全免费下载网站获客
  • 大唐网站设计游戏网站建设成功案例
  • 描述自己做的网站网站开发费用是无形资产
  • 小说网站开发技术实现建网站有什么要注意的
  • 西安地产网站制作公司wordpress上传后设置
  • 昆明网站推广8888168做装修的人到什么网站找工作
  • html商务网站模板广告公司网站制作
  • 烟台品牌网站建设网站建设公司制作网站
  • 专业的常州做网站接工程网站