网站怎么做的qq邮件订阅,网站源码模板,福建亨利建设集团有限公司网站,wordpress主题网址导航葬爱介绍 
原型模式是一种创建型设计模式#xff0c;主要用于创建重复的对象#xff0c;而无需重新初始化它们#xff0c;从而提高效率并简化对象的创建过程。此模式的核心思想是利用已存在的对象实例#xff0c;通过复制#xff08;克隆#xff09;的方式来生成新的对象主要用于创建重复的对象而无需重新初始化它们从而提高效率并简化对象的创建过程。此模式的核心思想是利用已存在的对象实例通过复制克隆的方式来生成新的对象而不是通过new操作符来不断创建新的实例。这种方式在处理大量相似对象的场景下特别有用尤其是在初始化对象成本较高或者需要创建的对象结构复杂的情况下。 
原型模式的关键要素 
抽象原型Prototype这是一个接口或抽象类声明了克隆自身的方法。在Java中这个方法通常被表示为clone()方法。具体原型Concrete Prototype实现抽象原型的类需要实现克隆自身的逻辑。这些类包含用于创建对象所需的所有信息。 
工作原理 
客户端请求创建一个新对象时不是直接使用new操作符创建而是向已经存在的对象原型请求一个克隆。原型对象使用其内部的clone()方法创建并返回一个新的对象副本。这个新对象应当与原对象保持相同的初始状态但根据需要可以进一步修改而不影响原对象。 
拷贝类型 
浅拷贝Shallow Copy创建一个新对象但对象中的引用类型成员变量仍然指向原来的对象即复制对象的指针而不是指针所指向的内容。深拷贝Deep Copy除了复制对象本身外还复制对象所包含的所有引用类型成员变量所指向的对象使得新旧对象完全独立互不影响。 方式 1递归复制引用对象、引用对象的引用。。。。一直到复制的对象只包含基本数据类型。方式 2序列化后反序列化生成对象例如序列化成 JSON 再反序列化。  
应用场景 
当创建新对象的成本较大时如涉及复杂计算或大量数据库操作。需要创建的对象类型在运行时决定客户端可以根据不同条件请求不同类型的对象克隆。需要避免共享资源的冲突每个用户都可以得到对象的一个独立副本。 
优缺点 
优点 
提高性能特别是在创建对象开销大的情况下。简化对象的创建过程使得代码易于维护和扩展。提高系统的可扩展性容易添加新的原型类。 
缺点 
需要为每一个类配备克隆方法增加工作量。浅拷贝可能会引起对象状态不一致的问题需要谨慎处理深浅拷贝的选择。过多的克隆操作可能会导致内存占用增加。 
案例 
更新 map 缓存数据时直接克隆出一个 map 后再进行更新这样不影响原本的 map 的使用。