您现在的位置是:首页 >学无止境 >设计模式 -- 原型模式网站首页学无止境

设计模式 -- 原型模式

月央泽 2023-07-15 12:00:02
简介设计模式 -- 原型模式

前言

月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)

央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)

泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)

月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容

希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!

一、什么是原型模式?

        原型模式是一种创建型设计模式,它允许我们通过复制现有对象来创建新对象,而不是通过实例化新对象并手动设置其属性。这种方式可以提高创建对象的效率,特别是当对象的创建成本很高时。

        在原型模式中,我们创建一个原型对象,并使用它来创建其他对象。原型对象包含要复制的属性和方法。当我们需要创建新对象时,我们只需复制原型对象并进行必要的更改即可。

二、原型模式的优缺点:

优点:

  1. 提高性能:由于原型模式是通过克隆已有对象来创建新对象,避免了重复创建对象的开销,提高了性能。

  2. 简化对象创建过程:原型模式可以通过复制现有的对象来创建新对象,避免了手动创建对象的复杂过程,简化了对象创建过程。

  3. 可以动态添加或删除对象:原型模式可以动态添加或删除已有的原型对象,从而实现动态的对象创建。

  4. 可以实现深克隆:原型模式可以实现深克隆,即复制对象及其所有子对象的状态,从而避免了浅克隆可能带来的问题

缺点:

  1. 原型对象必须要能够被复制。如果对象不支持复制,那么就无法使用原型模式。

  2. 对象的复制可能会非常耗费资源,特别是当要复制的对象非常大时。

  3. 原型模式会破坏对象的封装性,因为对象的复制需要访问对象的内部状态。

  4. 原型模式的实现可能会增加代码复杂度,因为存在循环嵌套的情况

三、原型模式的结构:

        

 

四、原型模式实战:

以上图为例,实战原型模式

1.创建原型对象

 2.测试原型模式:

3.结果:

 

五.总结:

原型模式的应用场景:

  1. 在创建对象的过程中,如果需要创建多个具有相同属性的对象,可以使用原型模式,避免重复创建对象,提高性能。

  2. 在需要创建的对象的类中,如果存在比较复杂的构造函数或初始化操作,可以使用原型模式,避免重复编写这些代码。

  3. 在需要动态生成对象的场景中,原型模式可以根据需要动态生成对象,而不需要预先定义好所有可能需要的对象。

  4. 在需要保护对象的场景中,原型模式可以通过复制对象来创建新的对象,而不会影响原有对象的状态和属性。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。