您现在的位置是:首页 >学无止境 >设计模式 -- 原型模式网站首页学无止境
设计模式 -- 原型模式
前言
月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)
央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)
泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)
月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容
希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!
一、什么是原型模式?
原型模式是一种创建型设计模式,它允许我们通过复制现有对象来创建新对象,而不是通过实例化新对象并手动设置其属性。这种方式可以提高创建对象的效率,特别是当对象的创建成本很高时。
在原型模式中,我们创建一个原型对象,并使用它来创建其他对象。原型对象包含要复制的属性和方法。当我们需要创建新对象时,我们只需复制原型对象并进行必要的更改即可。
二、原型模式的优缺点:
优点:
-
提高性能:由于原型模式是通过克隆已有对象来创建新对象,避免了重复创建对象的开销,提高了性能。
-
简化对象创建过程:原型模式可以通过复制现有的对象来创建新对象,避免了手动创建对象的复杂过程,简化了对象创建过程。
-
可以动态添加或删除对象:原型模式可以动态添加或删除已有的原型对象,从而实现动态的对象创建。
-
可以实现深克隆:原型模式可以实现深克隆,即复制对象及其所有子对象的状态,从而避免了浅克隆可能带来的问题
缺点:
-
原型对象必须要能够被复制。如果对象不支持复制,那么就无法使用原型模式。
-
对象的复制可能会非常耗费资源,特别是当要复制的对象非常大时。
-
原型模式会破坏对象的封装性,因为对象的复制需要访问对象的内部状态。
-
原型模式的实现可能会增加代码复杂度,因为存在循环嵌套的情况
三、原型模式的结构:
四、原型模式实战:
以上图为例,实战原型模式
1.创建原型对象
2.测试原型模式:
3.结果:
五.总结:
原型模式的应用场景:
-
在创建对象的过程中,如果需要创建多个具有相同属性的对象,可以使用原型模式,避免重复创建对象,提高性能。
-
在需要创建的对象的类中,如果存在比较复杂的构造函数或初始化操作,可以使用原型模式,避免重复编写这些代码。
-
在需要动态生成对象的场景中,原型模式可以根据需要动态生成对象,而不需要预先定义好所有可能需要的对象。
-
在需要保护对象的场景中,原型模式可以通过复制对象来创建新的对象,而不会影响原有对象的状态和属性。