社区
Java
帖子详情
关于prototype模式
songsd
2003-01-15 11:05:18
在<<设计模式--面向对象可复用技术>>书中,看prototype模式,看了几遍,始终不理解他讲的是什么,我想可能java里面有了clone这个方法,实现这个模式可能很容易,但是对书中讲的是什么意思不太理解,谁能讲一下
...全文
73
11
打赏
收藏
关于prototype模式
在<>书中,看prototype模式,看了几遍,始终不理解他讲的是什么,我想可能java里面有了clone这个方法,实现这个模式可能很容易,但是对书中讲的是什么意思不太理解,谁能讲一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DavidBone
2003-04-20
打赏
举报
回复
up
DavidBone
2003-04-20
打赏
举报
回复
up
super_zzw
2003-01-29
打赏
举报
回复
关键就是如果要一个对象具有完整的clone特性,必须让它的所有属性具有clone属性而且必须层层clone.否则只是浅层clone.
richardluopeng
2003-01-28
打赏
举报
回复
不是反不反的问题,这两个模式是相互竞争的模式,根本就没有必要一起用,除非你非要把他拧在一起!!!
merlinran
2003-01-28
打赏
举报
回复
你把制造和复制的先后顺序搞反了。复制总得基于一个本来存在的对象,所以有制造的需要。因为原型只需要一个,这里的工厂可以不像普通的那样从堆中分配对象然后返回给用户,而是返回一个静态实例给用户,类似于多件。
richardluopeng
2003-01-27
打赏
举报
回复
不是呀,对于一个object,你都已经clone出来了,你要拿工厂来制造它,干吗,有必要吗???
richardluopeng
2003-01-25
打赏
举报
回复
简单的说,就是clone,呵呵
楼主,之所以没有看明白,我想是因为它有些判断,判断clone 是不是正确,因为有很多种的object,要时间prototype模式,需要改写其clone方法,需要保证clone的方法正确,举个例子来说,
人这个对象是可以clone的,但是clone的结果得到一个猴子,那它是失败的,呵呵,如果得到一个人,那基本上是成功的,就是clone出来一个人,是不是面貌一模一样,还是允许有一定程度的差别,所谓的深clone和浅clone(我也没有完全看明白,:))
楼上的,原型方法和工厂结合一般不和结合的,呵呵
请多多指教!谢谢!
merlinran
2003-01-25
打赏
举报
回复
谁说不可结合呢?只要觉得合适,就可以用。当然,基于实践者的水平,可能会误用,但圣贤没有教我们什么模式在什么时候用了会有什么不良结果,或者哪两个混用会有什么化学反应。只有自己亲身经历,才知道什么时候是误用,才能在以后的实践中避免。
我的看法是:只有对象本身才知道怎样复制自我,只要clone操作定义得恰当,是不可能由人clone出猴子的,实际上,人和猴子对对方的结构都是不清楚的,只对自己的结构了如指掌。
原型本身不一定就得全程可见,也可以按需创建。复制时无需知道被复制对象的准确类型,是原型方法的核心;创建时无需知道被创建对象的准确类型,是抽象工厂的好处。我不觉得二者有什么冲突。
merlinran
2003-01-17
打赏
举报
回复
上面老兄讲的是proxy,不是prototype。
对prototype,我的理解是:因为你是用一个基类的引用来得到实际对象的,不知道对象的实际类型是什么,当然也不能拷贝一个它的实例,只有派生类自己才知道怎么拷贝自己。
比如:
Image *anImage=CreateImage(filename);
Image *anotherCopy=anImage.clone();
因为你不知道CreateImage返回的到底是一个什么Image,你只能让对象自己来负责拷贝自己。
注:这里为简明起见,不像GoF的书中那样,事先把原型都建好了,而是把原型方法和工厂结合,由此可见,设计模式是灵活运用的,它本身是来自于编程实践,当然也要与实践相结合。
fangss
2003-01-16
打赏
举报
回复
对象和代理对象并不是完全相同的.
书中讲到,如果打开一个文档包含图片对象时,load的时间会增加.
可是我们如果用一个代理对象来代理图片对象时,文档打开就会很快(不显示的图片可以先不load).
在需要时load图片.
james_razor
2003-01-16
打赏
举报
回复
对接口或者抽象类的操作,都可以得到对象的原始形态,此所谓“原型”是也。原型的应用之一就是消除和类继承体系平行的Abstract Factory继承体系。
精通JavaScript(jQuery之父力作)『高清晰』.pdf
Prototype
库是JavaScript设计
模式
的实践,提供了许多实用的类和方法,而jQuery以其简洁的API和强大的选择器闻名,极大地提升了开发效率。《精通JavaScript》中提到的启示迪人作用,可能指的是读者在理解了JavaScript...
c++实现设计
模式
——
Prototype
模式
c++实现设计
模式
——
Prototype
模式
什么是
Prototype
模式
Prototype
模式
提供了一个通过已存在对象进行新对象创建的接口(Clone),Clone()实现和具体的语言相关,在C++中通过拷贝构造函数实现。 结构图 为...
设计
模式
:
Prototype
模式
Prototype
模式
——通过复制生成实例 在Java中,我们通常使用new关键字指定类名来生成类的实例。但是在开发过程中,我们有时也会遇到“在不指定类名的前提下生成实例”的需求。 这里我们采用根据实例来生成新实例的...
设计
模式
之原型
模式
(
Prototype
模式
)
原型
模式
(
Prototype
Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计
模式
属于创建型
模式
,它提供了一种创建对象的最佳方式。 这种
模式
是实现了一个原型接口,该接口用于创建当前对象的克隆。当...
Java
51,412
社区成员
86,031
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章