设计模式系列详解 -- 原型模式

举报
baidaguo 发表于 2022/07/08 22:20:05 2022/07/08
【摘要】 原型模式简介以及使用场景? 简介: 不通过new(构造方法)创建对象,通过clone,或者copy的操作创建对象 使用场景: 1、类初始化消耗资源较多 2、new产生的一个对象...

在这里插入图片描述

原型模式简介以及使用场景?

简介:

不通过new(构造方法)创建对象,通过clone,或者copy的操作创建对象

使用场景:

1、类初始化消耗资源较多
2、new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等)
3、构造函数比较复杂
4、循环体中产生大量的对象时(比较常见)

原型模式使用起来简单,但是在我们每次在clone基类或者有引用对象的时候需要我们去修改原型对象的clone方法,这不符合我们开闭原则。

在一般情况下是不建议用这种模式的除非创建的对象成本特别大,或者在一些特殊场景使用

原型模式优缺点?

优点:java自带的原型模式是基于内存二进制流的拷贝,比直接new一个对象性能上提升了许多。
可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份并将其状态保存起来,简化了创建过程
缺点:必须配备克隆或者可拷贝的方法,当对已有类进行改造的时候,需要修改代码,违背了开闭原则ÿ

文章来源: baidaguo.blog.csdn.net,作者:白大锅,版权归原作者所有,如需转载,请联系作者。

原文链接:baidaguo.blog.csdn.net/article/details/125405904

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。