浏览 1708 次
锁定老帖子 主题:关于领域建模的工厂和仓库或资源库的疑问
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-27
最后修改:2011-11-28
我需要把一个文件导入系统,系统也使用文件存储,导入的文件格式和系统文件格式一致。 第一种方法: 这时按DDD来说应该要工厂根据导入文件创建实体类,再交给资源库保存。 当第二次需要程序中需要使用这个实体时,应该是问资源库直接要,资源库使用文件工具读取文件,并装配成实体对象,也就是唤醒对象。 问题出现了,资源库分析文件和工厂分析文件的逻辑是一样的,如果是这样代码就重了。 第二种方法: 这倒也好解决,直接把分析文件得到实体对象的逻辑封装成一个分析类就好了,但这样感觉工厂和资源库的方法里都是空空的,感觉不太对头,而且两个里面好些逻辑都是一样的。 引起思考,到底应不应既有工厂又有资源库,两个的做的事差不多啊(我指的是在本例中,在用数据库我是能明白的,现在是两个的逻辑刚好一样了)。 第三种方法: 导入时就直接用一个服务类调用问文件包把文件拷贝到系统,当做是系统的存储数据,再调用资源库当成已经数据直接换醒它。不使用工厂了,直接当成已有对象来处理。(其实两个装配逻辑并不完全一样,第一次导入时没有聚合对象,以后装配时会有聚合对象,直接把第一种看成是聚合为空的装配,把装配做的灵活一点有聚合就装,无就不装就可以,这倒也没问题) 大家觉得哪种好,或者我的方法都不对,更加欢迎批评指正。 经过一晚上,自己想明白了。 如果要导入的文件格式真的和存储的格式一致,那第三种就是合适的。 但是我这个项目,导入文件以后还要支持其它类型,而且文件存储没有必要使用导入的文件格式,因为它是原材料,每次程序还要经过再加工,所以应该把程序的文件结构设计成加工的结果,以后资源库唤醒时就容易多了。也就是我要使用第一种方法。想明白了,开心。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |