java模式问题

zmbaby112 2010-07-14 10:54:12
在工厂方法模式中,有一句话,不是太理解,麻烦各位能否给个浅显的说法儿,小弟在此先谢过了!

"一个常见的复杂工厂逻辑就是循环使用产品对象,如果产品对象可以由内部状态表征的话,那么,对于每个可能的内部状态,往往仅需要一个产品实例".

对象的内部状态表征是什么意思?

...全文
50 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmbaby112 2010-07-14
  • 打赏
  • 举报
回复
感谢各位的帮助,现在理解了,结贴!
caofeng891102 2010-07-14
  • 打赏
  • 举报
回复
学习。。。
wakeUpDoNottLazy 2010-07-14
  • 打赏
  • 举报
回复

[Quote=引用楼主 zmbaby112 的回复:]
一个常见的复杂工厂逻辑就是循环使用产品对象
[/Quote]
这个就是“对象池”。对象工厂中要有一个对象池,以便循环使用创建出来的对象,而不是每次都去创建。

[Quote=引用楼主 zmbaby112 的回复:]
如果产品对象可以由内部状态表征的话,那么,对于每个可能的内部状态,往往仅需要一个产品实例
[/Quote]
首先声明我没有注意过有关“内部状态表征”的设计,所以理解的不对,不怕疼,拍吧。
我对于这个“内部状态表征”的理解是:类中的一个属性,以标识某个类实例与其它类实例的区别。目的就是为类使得各个实例完成仅属于自己的任务。
例子:(例子不好,但暂时想不出更好的。)办公室中的文档柜(一抬头看见了),要有多个文档柜,但每个文档柜要存放不同类别的文件,所以给各个文档柜贴上标签。以标识该文档柜的存储功能。
bastengao 2010-07-14
  • 打赏
  • 举报
回复
那他说可能是缓存已创建的对象,每次返回给你缓存的对象。似乎用的是工厂模式与享元模式的结合。
healer_kx 2010-07-14
  • 打赏
  • 举报
回复
我理解,他讲的是一个对象池的概念。。。

SomeClass inst = Factory.GetObject();
它每次返回的inst,可能都是同一个对象,

所谓内部状态是说inst这个实例,可能有他自己的状态,比如说avaiable等等。

工厂根据这些状态,确定是不是要返回给客户。
Ade子夜 2010-07-14
  • 打赏
  • 举报
回复
顶!!
自学!!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧