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

求个a站东莞 网站 建设 雕塑

求个a站,东莞 网站 建设 雕塑,昆明参差网站,携创网中国工商注册网原型模式: Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类, 并且通过拷贝这些原型创建新的对象。 ) UML图&#xff1…

原型模式: Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类, 并且通过拷贝这些原型创建新的对象。 )

UML图:

代码实现:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 原型接口
typedef struct {void* (*clone)(void*);
} Prototype;// 具体原型类
typedef struct {Prototype prototype;char* name;int age;
} ConcretePrototype;void* ConcretePrototype_clone(void* obj) {ConcretePrototype* self = (ConcretePrototype*)obj;ConcretePrototype* clone = malloc(sizeof(ConcretePrototype));memcpy(clone, self, sizeof(ConcretePrototype));clone->name = malloc(strlen(self->name) + 1);strcpy(clone->name, self->name);return clone;
}ConcretePrototype createConcretePrototype(char* name, int age) {ConcretePrototype prototype;prototype.prototype.clone = ConcretePrototype_clone;prototype.name = malloc(strlen(name) + 1);strcpy(prototype.name, name);prototype.age = age;return prototype;
}int main() {ConcretePrototype prototype = createConcretePrototype("Alice", 25);ConcretePrototype* clone = prototype.prototype.clone(&prototype);printf("Name: %s, Age: %d\n", clone->name, clone->age);free(clone->name);free(clone);return 0;
}

在上面的示例代码中,首先定义了原型接口Prototype,其中包含了一个克隆函数指针。然后定义了具体原型类ConcretePrototype,它实现了原型接口中的克隆函数。

接着在main函数中,创建了一个具体原型对象prototype,然后通过克隆函数创建了一个新的对象clone,最后输出了新对象的属性。

原型模式的优点:

  1. 可以动态克隆对象,减少了对象创建过程中的时间和资源消耗。

  2. 可以隐藏对象创建细节,使用户无需关心对象的创建方式。

  3. 可以为使用者提供更加灵活的对象创建方式。

原型模式的缺点:

  1. 需要深度复制对象的所有属性,包括引用类型的属性,否则会出现浅拷贝导致的问题。

  2. 如果对象有循环引用,则需要特殊处理。

适用场景:

  1. 对象的创建过程比较复杂或耗时,需要缩短对象创建时间。

  2. 对象的创建方式比较固定,但是需要某些属性进行个性化设置。

  3. 对象的构造函数是私有的,不能直接调用,但又需要复制该对象。

http://www.yayakq.cn/news/342551/

相关文章:

  • 长汀网站建设小程序云开发的弊端
  • 宝安中心地铁站是几号线网站根目录怎么写
  • 创建网站的步骤是广州系统软件app开发公司
  • 网站建设河南公司wordpress站点进入时弹窗
  • 取名网站排名吉安高端网站建设公司
  • 网站开发行业竞争大吗阿克苏网站设计
  • 广州新塘做网站外网设计灵感网站
  • 网站怎么做实名认证重庆电子工程职业学院校园网
  • wordpress 建站教程 .pdf南京网络推广平台
  • 网站建设实训收获宁波seo网站推广
  • win8怎么建设网站中国国家培训网
  • 贵州网站制作公司揭阳网站制作案例
  • 门户网站建设公司哪家好wordpress 屏蔽 n
  • 2018做网站的视频基层建设是哪个网站的
  • 网站首眉怎么做2019做seo网站
  • 做软件网站wordpress 加入js
  • 做影视网站需要多少钱wordpress 调用form
  • 织梦小说网站模板下载地址Wordpress搜索结果页插件
  • 北京电商网站开发平台网站管理与建设教程
  • 柳州建网站网页毕业设计说明书
  • 广州市门户网站建设wordpress 时尚网
  • 网站维护工作的基本内容河北网站制作 网站开发
  • 苏州园区网站建设公司南部县房产网
  • 手机网站主页面文艺万网企业网站建设
  • 可以做淘宝推广的网站网页游戏排行榜2024
  • 江西中企动力做的网站做网站免费服务器哪家好
  • 北京大兴专业网站建设公司wordpress发表文章消息
  • 公司设计网站建设合同购物网站排名女装
  • 石龙东莞网站建设杭州网站建设 博客
  • 基于php技术的网站开发电子政务门户网站建设项目招标采购