 |
上一主题
版主你好,我看了你所写的适配器模式Adapter前部分,SquarePeg、RoundPeg、PegAdapter,我感到疑惑的是,如果我要在PegAdapter中实现既要打方型桩,又要打圆形桩的问题..
|
|
下一主题
BANG,这里的模式讲得都很好,不过好象少了更模式的UML简图。
有空大家费点时间和心思,把常见的模式UML图贴上来,互助方便。
|
|
|
|
请问,我这样做是不是很浪费资源啊???
|
2003年01月08日 00:13
|
|
|
标签列表
|
|
在JIVE中,要在页面上打印用户的信息,要先GETUSER(USERID),也就是先实例化一个USER类,然后再用它USER.GETNAME()等等,我打算再我开发的系统中也这样用,但与JIVE不同的是,我的USER信息很多,比JIVE的多很多,换句话说要实例化它代价要大一点,比如我只需要取得用户的名字,就必须先实例化USER,感觉付出与得到的不成比例,(实例化一个看起来很打的类,却只是执行取得名字这一点小操作,然后又释放,很浪费啊)。 请问,我得担心有必要吗?真的如我所料很浪费吗?如果有必要,我该怎么做来改变这种情况??????请回答,谢谢
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月08日 09:55
|
|
|
象jive中一样,你也可以专门用一个表来放用户名,这样读入的速度就快一些!事实上实例化一个类的成本没有读数据库的大啊!
你的用户数据是在数据库中吗?
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月08日 10:06
|
|
|
首先你的担心是正确的,Java设计中应该有珍惜资源的习惯。 你可以使用cache 或Session的方法 ,防止反复构造User对象。
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月08日 12:52
|
|
|
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月08日 13:58
|
|
|
结合或者单独使用延迟初始化的策略来降低开销
请问是什么意思啊?????
hxz 我的数据是放在数据库里.
BANG 你的意思是第一次初始化后将他放在SESSION或CASH里面,以后再用同样的USER时,就从SESSION或CASH里面取????
谢谢你们的指点!!
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月08日 23:34
|
|
|
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月09日 10:03
|
|
|
我的做法最简单,用静态的Hashtable来缓存用户对象,如果Hash表里面没有相应数据在到数据库中读取 如果怕这样太消耗内存的话,就用一个队列存储对象的访问此时,把访问频繁的放在前面,定时删除队伍尾部的就可以了 办法很土,不能在Cluster上用
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月09日 10:17
|
|
|
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月10日 13:57
|
|
|
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月10日 14:23
|
|
|
用mem_fox 的方法是大量用户时的很好的办法 但是你说的是用户的属性(信息)很多,造成实例化时相关信息的浪费 我试着提几个方法 一:用外键关联一些用户信息 二:干脆把常用的那几个属性提出来做一个小表,这样可以加速,如果还有要求,可以把这个小表的信息放到"缓冲"中来 三:如果用户很多并且不确定的访问,可以借用jive中的cache机制啊(我也没看过,很想读源代码,看完记得写一篇出来啊!) 我是新手有什么错误请指出!
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月10日 15:04
|
|
|
to:hxz 你太谦虚了,看了不少你的贴子,比起我来,你算是前辈了,以后还要多多向你学习呢,希望不吝赐教哦.
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月13日 13:12
|
|
|
|
将非关键性树型存储到Map里是个很好的办法,你的Map可以用XML来配置属性,这是一种模式,网上的pdf书中有相关介绍。
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年01月13日 23:39
|
|
|
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年03月10日 16:49
|
|
|
可以考虑建一个类 UserKey 然后在原先的 User类中增加一个方法 getUserByKey(UserKey) 来根据Key取得用户数据(假设名字是唯一的)
它可以解决你的问题。当你只需要访问用户名字时,你可以只实例化Key,节约资源,如果想要访问用户的别的属性,无缝的用getUserByKey取得。
|
|
|
|
|
|
Re: 请问,我这样做是不是很浪费资源啊???
|
2003年03月14日 03:07
|
|
|
If your class is simply a wrapper or a data structure, then there is no much overhead( less than 100 bytes) to make it a object instance. But how to manage resource efficiently and object's lifecycle can be complicated. i.e.: no matter you store it in a dedicate cache or session, how to control memory size, when to expire it if it becomes obsolete due to update or delete...
In general, you need a mechanism that can selective cache any table( cache from Expresso is a good ref), with basic control ( LRU or usage count), at least use a weak referenced hashmap to avoid overload. If the cached info is not read only, you'd better make it a class, it's smart enough to sync itself with DB and cache when change happens.
|
|
|
|
|
这个主题有 22 回复 / 2 页
Go
1 2
►
|
|
|
热点TAG:
AOP
cache
缓存
DDD
EJB
集群
设计模式
Hibernate
IOC
JiveJdon
OO
RBAC
Seam
Spring
Struts
anti spam
|