96SEO 2026-02-19 10:36 0
。

在这里#xff0c;原型实例指定了要创建的对象的种类。
用这种方式创建对象非常高效Prototype模式的定义如下用一个已经创建的实例作为原型通过复制该原型对象来创建一个和原型相同或相似的新对象。
在这里原型实例指定了要创建的对象的种类。
用这种方式创建对象非常高效根本无须知道对象创建的细节。
原型模式包含以下主要角色。
抽象原型类规定了具体原型对象必须实现的接口。
(Cloneable)具体原型类实现抽象原型类的
方法它是可被复制的对象。
(Prototype)访问类使用具体原型类中的
深克隆与与浅克隆Object类的clone方法只会克隆对象中的基本的数据类型对于数组、容器对象、引用对象等都不会克隆这就是浅克隆。
如果要实现深克隆必须将原型模式中的数组、容器对象、引用对象等另行克隆。
member;System.out.println(通过构造方法创建对象。
。
。
。
。
。
);}/***
clone.setHobbies((ArrayListString)
原型Prototype模式的定义如下用一个已经创建的实例作为原型通过复制该原型对象来创建一个和原型相同或相似的新对象。
在这里*
原型实例指定了要创建的对象的种类。
用这种方式创建对象非常高效根本无须知道对象创建的细节。
例如Windows
如果复制就快了很多。
在生活中复制的例子非常多这里不一一列举了。
*
ArrayList();initHobbies.add(play);Prototype
Prototype(张三,18,initHobbies,initMember);System.out.println(复制前);System.out.println(被克隆对象:prototype);Prototype
prototype.clone();System.out.println(复制后);System.out.println(是否同一对象(prototypeprototype1?是:否));System.out.println(修改被克隆对象属性);prototype.setName(李四);initHobbies.add(eat);initMember.setPosition(java);System.out.println(被克隆对象:prototype);System.out.println(克隆出的对象:prototype1);}}当把深克隆的实现方法注释使用浅克隆的方法时
当修改被克隆对象hobbies与member属性的时候克隆出来对象的hobbies与member属性也被修改可见这两个属性都是同一对象引用而String类型的name以及基础类型的age属性是不会被同时修改的可见不是同一引用。
浅克隆只复制对象的String类型属性以及一些基本类型属性是不完全克隆。
当修改被克隆对象name、age、hobbies以及member属性的时候克隆出来对象的hobbies与member属性并未被修改可见通过这种深克隆的方法把所有的属性都创建一个新的内存对象并使被克隆对象与克隆出的对象所有属性有不同的地址引用深克隆的复制更加彻底。
注意上面代码在执行克隆的时候并未打印构造方法中的“通过构造方法创建对象。
。
。
。
。
。
”因此可见使用原型模式复制对象不会调用类的构造方法。
因为对象的复制是通过调用Object类的clone方法来完成的它直接在内存中复制数据因此不会调用到类的构造方法。
不但构造方法中的代码不会执行甚至连访问权限都对原型模式无效。
还记得单例模式吗单例模式中只要将构造方法的访问权限设置为private型就可以实现单例。
但是clone方法直接无视构造方法的权限所以单例模式与原型模式是冲突的在使用时要特别注意。
对象之间相同或相似即只是个别的几个属性不同的时候。
创建对象成本较大例如初始化时间长占用CPU太多或者占用网络资源太多等需要优化资源。
创建一个对象需要繁琐的数据准备或访问权限等需要提高性能或者提高安全性。
系统中大量使用该类对象且各个调用者都需要给它的属性重新赋值。
一个对象更加优良。
可以使用深克隆方式保存对象的状态使用原型模式将对象复制一份并将其状态保存起来简化了创建对象的过程以便在需要的时候使用例如恢复到历史某一状态可辅助实现撤销操作。
方法位于类的内部当对已有类进行改造的时候需要修改代码违背了开闭原则。
当实现深克隆时需要编写较为复杂的代码而且当对象之间存在多重嵌套引用时为了实现深克隆每一层对象对应的类都必须支持深克隆实现起来会比较麻烦。
因此深克隆、浅克隆需要运用得当。
代码地址https://gitee.com/fluffycatkin/JavaDesignModel.git
https://blog.csdn.net/zhengzhb/article/details/7393528
http://c.biancheng.net/view/1343.html
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback