本文介绍: 对象的构造函数是私有的,不能直接调用,但又需要复制该对象。可以动态克隆对象,减少了对象创建过程中的时间和资源消耗。对象的创建方式比较固定,但是需要某些属性进行个性化设置。可以隐藏对象创建细节,使用户无需关心对象的创建方式。对象的创建过程比较复杂或耗时,需要缩短对象创建时间。,包括引用类型的属性,否则会出现浅拷贝导致的问题。在上面的示例代码中,首先定义了原型接口。,然后通过克隆函数创建了一个新的对象。,它实现了原型接口中的克隆函数。函数中,创建了一个具体原型对象。,最后输出了新对象的属性。
原型模式: Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类, 并且通过拷贝这些原型创建新的对象。 )
UML图:
代码实现:
在上面的示例代码中,首先定义了原型接口Prototype
,其中包含了一个克隆函数指针。然后定义了具体原型类ConcretePrototype
,它实现了原型接口中的克隆函数。
接着在main
函数中,创建了一个具体原型对象prototype
,然后通过克隆函数创建了一个新的对象clone
,最后输出了新对象的属性。
原型模式的优点:
原型模式的缺点:
适用场景:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。