凡亿教育-麦麦
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 嵌入式 C 语言设计模式 --- 原型模式
嵌入式 C 语言设计模式 --- 原型模式

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

1 - 什么是原型模式?


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


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


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


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


57756468c12e50237834bdff63d8ae.jpg

图片来源:网络


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


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


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


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


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


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


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


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

871879fca10e407a00ccfb6c210316.jpg


3 – 如何使用原型模式?


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


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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论