概念
通过在map中保存所有的加载对象,确保对象只加载一次,每次查找对象都先去map中查找是否有这个对象,如果有就返回,没有才去加载
场景
1、管理从数据库加载的对象,使之持久对象在内存中始终唯一
2、作为从数据库加载对象的缓存器,可以避免每次读数据时候都要从数据库加载
应用
单数据库简单用法:对每个表都有一个对应的map,当需要从数据库中加载一个对象的时候,你首先核实一下map,如果map中存在一个和你所需要加载的对象相等的一个对象,直接返回这个对象,如果没有,查找数据库,并且把加载出来的对象放到map中。
注意点
1、关键字的选择:以表名作为map的关键字 ...
Usecase的概念
Usecase功能:反映了系统的功能性需求。描述了系统的活动者和系统的交互情况。
一个Usecase表示一组具有共同使用目标的消息序列(scenario),其中消息序列指的是描述活动者与系统交互的一组有序的步骤。消息序列包括两种:一个主要成功消息序列(main success scenario)和多个例外(extensions)。
Usecase图
Usecase图只是简单地描述每一个用例的交互情况,主要目的是明确用例与活动者的关系和系统的边界,一般包括如下两个方面:1、用例是和那些活动者交互;2、用例包括那些其他的用例。
...
看了一下《针对Java程序员的UML概述》,突然发现一章讲编程需要注意的原则,列了出来五个原则。
单一职责原则:一个类应当只有一个改变的原则。这个是初学者很容易犯的毛病,把一个类中放了N多的方法,也是面向过程遗留下来的毛病,对一开始实现时候是比较爽,所有的逻辑都放在一个类中,比较明了。但是到后来就越来越难查看,简直到崩溃的边缘。
开放封闭原则:软件实体(类、模块、函数等)应当为扩展而开放,又为修改而封闭。这个原则有一个相当详细的定义,但是一个简单的意思是:你应当能够改变一个模块的 周边环境而无须改变模块本身。这块关键是使用抽象,比如dao模式,不能因为数据存取方式的改变而要 ...
近段时间因为工作需要看了一些有关SaaS的文档,有支持的也有反对的,支持者指明这是新的软件销售模式,反对者把他于ASP相比较,我还是偏向于支持一方的。
第一、 长尾效应。微软推崇的长尾效应的确需要ISV能象提供水电一样提供软件服务,针对于中小企业不能负担软件采购、部署、维护等工作,SaaS可以减少信息化的成本。
第二、 ISV自身的需要。由于软件的可重复性,对所有客户的软件都是一个版本,就产生了规模经济,这样可以节省ISV的运行成本。
第三、 企业客户的需要。企业信息化的高投入长见效使得企业在软件选型上小心翼翼,现在 ...
由于语文水平不是很好,一直以来都是看看未回帖,好不容易有了兴致回了一个帖子,被指为隐藏帖,扣了十分,郁闷。
回头看看积分规则、博客服务使用条例,论坛使用规则和提问的智慧。
学习中......................
新的一年做的最有意义的第一件事就是学习了“时间管理”。之所以想起来学习一下时间管理,是因为在过去的一年中自己迷失了目标,浪费了许多的好时光;因此痛定思痛,决定在这一年中利用好所有自己的时间,实现自己年度目标。
一、 为什么要进行时间管理?
时间是财富!想想吧,如果你每天都收到86400美元,而要求你每天必须把它用完,那你会如何运用?天下真有如此的好事?事实上,有。那就是时间。我们每个人每天都有86400秒进帐,合理的利用他们,你就可以创造财富,爱情,成功,健康等。人生最宝贵的两项资产,一项是头脑,一项是时间。无论你做什么事情,即使不用脑子,也要花 ...
java.lang.NoSuchMethodError: com.guotai.po.baseData.MaterialSpecPO.getHibernateLazyInitializer()Lorg/hibernate/proxy/LazyInitializer;
这是Hibernate的一个BUG, 详细请看链接 http://opensource.atlassian.com/projects/hibernate/browse/HHH-1293
不过这个问题在BUG库中记录的是去年年底提出的, 这么长时间了还没有得到hibernate的解决, 因为最新版是3.2 RC2同样存在相同的 ...
前段时间用jbpm做工作流,同事要求能根据实际的流程显示任务详细信息,自己就做了一个actionHandler,放入在task的task-assign事件中.
java 代码
package com.guotai.wf.handler;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; ...
又是一个不大不小的项目,又是一个没有人做的项目,每次做项目都是这样,开始觉得要好好的系统设计,好好的构架.到最后呢,连稍微懂懂的人都没有,看看身边都是一些刚毕业的新手,虽然他们也很努力了,但是时间过去了,东西做不出来了,郁闷!!!
actorId是指任务的主要负责人,如果这个任务分配给某个人,就指定actorId为这个人,这个任务为个人任务
pooledActors是任务的候选人,如果这个若无分配给群组,那pooledActors就为这个群组的成员,相对而言这个任务就是共同任务
当一个共同任务指明了要某人去做的话,这个任务就变成个人任务,就指定actorId为这个人.
在我们的工作流中,如果分配给角色的,就是共同任务;如果分配给个人,就是个人任务.
现在就是一般我们指定的都是一个角色,当这个角色只是一个人的时候,就要衡量一下了
"推"这个含义,就是把这个任务推向某个actorId
"拉"这个含义,就是把整个可以做这个 ...







评论排行榜