发表于: 2017-10-30 16:03:23

1 701


今日完成:

1、还记得刚开始做Java任务的时候,有一深度思考『什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?


现在做了真实项目以后,有了更深的体会,意识到公司的项目似乎使用的既不是『充血模型也不是『贫血模型』,而是失血模型』。


实体类叫 Subject,Lesson,Period,Task。

一个Service接口类叫 SubjectServiceImpl,LessonServiceImpl。

一个业务逻辑类叫


Java 代码:

模型:

Class Subject{

  private Long id;

   /*科目名称*/

   private String subjectName;

   private Integer grade;

   private Integer gradeDept;

   private Integer sort;

}

service:

public List<Long> getSubjectIdsByStatusOrderBySort(Integer status, Integer start, Integer limit)

       throws ServiceException, ServiceDaoException;

public List<Long> getSubjectIdsByStatusAndGradeDeptOrderBySort(Integer status, Integer gradeDept, Integer start, Integer limit) throws ServiceDaoException;


insert,insertList,delete,update,updateList等方法都放在 subjectService ,实现具体的业务逻辑。除了常见的和CRUD有关的简单逻辑之外,这里还有许多别的方法,比如 getSubjectIdsByStatusAndGradeDeptOrderBySort,是通过『上下架』『年级部』来查找课程,并用按照『sort』来排序。


失血模型简单来说,就是domain object只有属性的getter/setter方法的纯数据类,所有的业务逻辑完全由business object来完成(又称TransactionScript),这种模型下的domain object被Martin Fowler称之为“贫血的domain object”。




2、改写了一下发短信的service。



明天计划:

1、app端支付宝支付功能有些问题,明天需要搞定。

2、把项目中遇到的问题写成博客。现在可以写的主要是一些代码优化方面的内容。


遇到的问题:

1、晚上广亮师兄那里遇到一个问题,其实刚开始做项目的时候困扰我的,

两个链接都一首音频上传到第三方存储后返回的,不同之处在于第一个链接放进地址栏可以在线播放、而第二个链接放进地址栏会自动下载这首音频。
http://oarbi0614.bkt.clouddn.com/%E7%88%B1%E5%BE%B7%E5%8D%8E%E7%9A%84%E5%B0%8F%E8%AF%B4.mp3 

 http://learn-10047330.file.myqcloud.com/task/40ce819a-b350-4566-b110-d046df92b018.mp3  


收获:




返回列表 返回列表
评论

    分享到