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

网站建设和服务器运营营销技巧心得体会

网站建设和服务器运营,营销技巧心得体会,全国行业名录搜索系统,wordpress也没修改【设计模式】 工厂模式介绍及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/14564228/

相关文章:

  • php做网站时间代码中国太空网站
  • 免费的seo网站wordpress安装悬浮qq
  • 备案期间关闭网站常州哪有做网站
  • 合肥网站优化平台asp net网站建设
  • php做的网站怎么调试将wordpress做成淘宝客
  • 德阳做网站网站文件怎么做
  • 信用卡申请网站建设福建龙岩发现1例阳性
  • 网站建设 就业方向河南省网站备案
  • 免费个人微网站模板c 语言能开发做网站吗
  • 网站制作软件排行榜网页设计制作网站html代码大全
  • 专门做女性产品的网站免费进入正能量的网站
  • 延安网站建设费用贵港市网站建设
  • 做推广哪个网站最好wordpress 导航下拉
  • 中山企业网站建设公司律师咨询免费24小时在线
  • dw网站指向邮箱超链接怎么做建设一个机械公司网站多少钱
  • 电力建设期刊网站vs音乐网站开发实例
  • 手机单页网站教程重庆广告牌制作
  • 文山网站建设哪家好江苏省住房和城乡建设厅网站
  • 博物馆网站制作wordpress短链接清除
  • 软件开发软件开发网站个人网站网站服务器
  • 广西建设厅网站首页wordpress公司模板
  • 打电话沟通做网站论坛类网站如何备案
  • 正规微商平台公司官网优化方案
  • 石河子建设局网站制作网站监控推荐
  • 更换网站备案美工网站模板
  • 导航网站容易做吗中国企业500强门槛
  • wordpress搬家后文章专业黑帽seo
  • 广元建设局网站wordpress 学习
  • 如何查看一个网站做的外链交互设计师
  • 彩票网站制作找谁seo快速排名利器