引用:
“3. 本block 没错误, 检测map 看看公司,服务,船,航线,港口 是否已经存在,如果存就从map里取出它,如果不存在就 new 一个新的objekt,。。。”
区别就在这儿,你这个检测map是你的importer的一个对象,new 也是直接写在importer里面的,这样是说你有一个超级controller (就是这个importer), 所有逻辑(无论什么entity)都在里面,这就是面向过程。。。起码不是面向对象。
正确的是,比如要插入block对象,创造对象和检验存在都应该是block类的职责。例如:
static Bool Block.exist(name, date, ...);
static Block Block.createBlockObject() throws InvalidDataException; - 对于block对像,只有这个方法里有new 关键字
void Block.savetoDatabase();
好处是,一旦有新类需要加入,主程序(importer)只需要极小的修改。具体推荐找一些factory pattern的代码读一读,祝你本周能顺利完成这个任务{:4_276:} 惯例补充一下,这个提高的是开发和维护效率,运行速度不会提升。并行之类的是其他Thema, 一次性的数据迁移不需要考虑这些。歇晌,下班{:4_279:} kudoshinqi 发表于 2015-10-19 16:12
你上级和我说的是一个意思,你再仔细看看我写的
引用:
谢谢,非常有道理,很可能就是这个意思,我去考虑一下,如何按照这种方式修改一下,谢谢 X 1000!
我想总算看明白了你的问题,你是直接在impoter里读cvs数据,直接生成了entity,对不对?你需要在中间加一层BO,来映射entity。 qwycd 发表于 2015-10-19 21:34
我想总算看明白了你的问题,你是直接在impoter里读cvs数据,直接生成了entity,对不对?你需要在中间加一层 ...
我就是这个意思,BO 是什么?能详细说说吗?怎么加呢? 我想我会 发表于 2015-10-19 21:57
我就是这个意思,BO 是什么?能详细说说吗?怎么加呢?
BO就是business object,可以理解为业务模型,不和数据库有任何联系,但这样做代码量暴增。如果是和系统无关的stammdaten进数据库,我认为你的做法是高效的,并无不可。如果是系统的produktion,因为hibernate一二级缓存同步的原因,非常不建议这么做。
主要看你有多少时间了。 本帖最后由 我想我会 于 2015-10-20 16:31 编辑
qwycd 发表于 2015-10-20 13:11
BO就是business object,可以理解为业务模型,不和数据库有任何联系,但这样做代码量暴增。如果是和系统 ...
谢谢,估计说的很可能就是这个模型! 能说说一般BO都是怎么做的吗?
上级说这么个model,我之前没听说过,所以我不知道具体的做法,都给我弄晕了,这个属于那方面知识?
能说说吗?
页:
1
[2]