kudoshinqi 发表于 2015-10-19 16:12

你上级和我说的是一个意思,你再仔细看看我写的{:4_279:}

引用:
“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:}

kudoshinqi 发表于 2015-10-19 16:15

惯例补充一下,这个提高的是开发和维护效率,运行速度不会提升。并行之类的是其他Thema, 一次性的数据迁移不需要考虑这些。歇晌,下班{:4_279:}

我想我会 发表于 2015-10-19 18:03

kudoshinqi 发表于 2015-10-19 16:12
你上级和我说的是一个意思,你再仔细看看我写的

引用:


谢谢,非常有道理,很可能就是这个意思,我去考虑一下,如何按照这种方式修改一下,谢谢 X 1000!

qwycd 发表于 2015-10-19 21:34

我想总算看明白了你的问题,你是直接在impoter里读cvs数据,直接生成了entity,对不对?你需要在中间加一层BO,来映射entity。

我想我会 发表于 2015-10-19 21:57

qwycd 发表于 2015-10-19 21:34
我想总算看明白了你的问题,你是直接在impoter里读cvs数据,直接生成了entity,对不对?你需要在中间加一层 ...

我就是这个意思,BO 是什么?能详细说说吗?怎么加呢?

qwycd 发表于 2015-10-20 13:11

我想我会 发表于 2015-10-19 21:57
我就是这个意思,BO 是什么?能详细说说吗?怎么加呢?

BO就是business object,可以理解为业务模型,不和数据库有任何联系,但这样做代码量暴增。如果是和系统无关的stammdaten进数据库,我认为你的做法是高效的,并无不可。如果是系统的produktion,因为hibernate一二级缓存同步的原因,非常不建议这么做。

主要看你有多少时间了。

我想我会 发表于 2015-10-20 16:28

本帖最后由 我想我会 于 2015-10-20 16:31 编辑

qwycd 发表于 2015-10-20 13:11
BO就是business object,可以理解为业务模型,不和数据库有任何联系,但这样做代码量暴增。如果是和系统 ...

谢谢,估计说的很可能就是这个模型! 能说说一般BO都是怎么做的吗?

上级说这么个model,我之前没听说过,所以我不知道具体的做法,都给我弄晕了,这个属于那方面知识?

能说说吗?
页: 1 [2]
查看完整版本: 求IT高手乱入