设计模式(一)原型模式

时间:2024-03-01 07:27:01

五种创建者模式:抽象工厂按照工厂方法、生成、单例、原型

原型模式:通过复制现有实例来创建对象;不是每次都通过new来实现;

原型模式的应用场景:

1.资源优化:当创建一个对象需要消耗大量资源时,并且这些资源的获取和处理过程比较耗时,可以使用原型模式来减少这些资源的消耗;

2.提供性能:特别是需要频繁创建和销毁对象的情况下,使用原型模式可以快速生成对象,从而显著提升性能;

需要注意的是:虽然原型模式能够有效的减少创建对象的开销,但是它并不是万能的,因为它依赖于克隆技术,而克隆技术可能会导致西能问题,尤其是在设计到深层克隆和多级对象依赖时,此外,使用原型模式肯呢个需要额外的代码来实现克隆功能,尤其是当类结构发生改变时需要更新克隆逻辑;

此外,原型模式还所涉及深克隆和浅克隆:

浅克隆创建的对象和原对象具有相同的属性,但这些属性仍然指向原对象的内存地址;

深克隆创建一个新对象,不仅属性相同,而且属性中引用的其他对象也会被完全克隆,不再指向原对象的内存地址;

克隆的实现:

浅拷贝实现方式1:Java 中的 Object 类提供了浅拷贝的 clone() 方法,具体原型类只要实现 Cloneable 接口就可实现对象的浅拷贝,这里的 Cloneable 接口就是原型类。

深拷贝实现方式1:重写clone方法来实现深拷贝,

深拷贝实现方式2:通过对象序列化实现深拷贝。(推荐使用)