0
收藏
微博
微信
复制链接

嵌入式 C 语言设计模式 --- 原型模式

2024-08-01 14:58
271

我是老温,一名热爱学习的嵌入式工程师
关注我,一起变得更加优秀!

1 - 什么是原型模式?


原型模式(Prototype Pattern),是属于创建型模式的一种。原型模式主要是使用了原型对象实例,来指定被创建对象的种类,并且通过拷贝原型对象的方式,来创建新的对象。


顾名思义,就是在创建一个新的对象的时候,先要有一个模板,这个模板被称作“原型”,后续被创建的新对象,就是依据这个“原型”进行创建的。


在原型模式里面,原型模板提供了一个克隆接口,方便通过已经存在的对象进行新对象的创建,也就是说,在创建一个新对象的时候,直接克隆原型对象就可以了,本质上隐藏了对象创建的细节,又大大提高了性能。


举个例子,原型模式就像文件复印一样,我们在进行复印时,需要先有一个模板放到打印机里面,然后打印机就会根据我们提供的模板,进行一模一样的复印操作,而我们不需要具体知道打印机的复印原理和复印过程。


57756468c12e50237834bdff63d8ae.jpg

图片来源:网络


原型模式主要涉及三种角色分类:原型抽象角色、原型实例角色、客户端角色,以下是这三种角色的说明。


原型抽象角色:对原型模板的抽象,也就是说,把原型对象必须要实现的接口抽象出来,例如在prototype.h文件中抽象出来的结构体。


原型实例角色:由原型抽象角色定义出来的,供客户端角色使用的原型实例对象,也就是实实在在的模板,由原型构造函数进行构建。


客户端角色:调用原型实例角色的客户端程序,在例程里面就是main函数。


2 – 什么情况下要用原型模式?


当需要创建一个与原型一模一样的对象,而不想调用对象创建的构造函数,就可以使用原型模式,


即使原型的属性和状态发生改变,也可以创建出一个与原型当前状态一致的新对象。


使用原型模式可以省去一系列对象构建的复杂操作,开发者在创建对象的时候,不需要关心对象创建的具体过程和细节。

871879fca10e407a00ccfb6c210316.jpg


3 – 如何使用原型模式?


还是复印试卷文件为例,在进行试卷复印之前,需要先提供一份试卷原型模板,然后打印机才能根据模板复印出多份一模一样的试卷。


原型模式主要涉及到3种角色,分别是原型抽象角色、原型实例角色、客户端角色,主要对这三种角色进行代码编写工作。


登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

工程师进阶笔记

我是老温,嵌入式物联网工程师,热爱学习,热爱生活,愿世界和平!

开班信息