我正在编写一个医疗账单应用程序,并且我第一次使用MVC(Spring),所以我很难找到一种感觉正确的方法。我们将不胜感激。
我的“域名”类
我的控制器类
我的存储库类
我的申请非常“规则重”。例如,医生不能删除其他医生的病人。如果患者已被收取费用,则不能删除患者。
我认为不应该在控制器中捕获这些规则,这些规则感觉很脏,特别是如果需要在多个控制器中使用规则。同样,我觉得我的DAO对象是用于阅读和阅读。只写,不是验证。因此,我创建了一个拥有大脑的BusinessLogic对象。所以我可以这样说:
businessLogic.deletePatient(患者,医生); //返回true / false并设置消息
检查登录的医生是否有权删除特定患者。
对我而言,这似乎是保持一切整洁的最佳方式。
好还是坏?什么会更好?
答案 0 :(得分:1)
域名模型对我来说看起来绝对天真,因为它不包括任何与保险公司打交道的东西或者应付账款/应收账款系统的界面。但也许你还处于早期阶段,只是在构建它之前尝试一个简单的模型。
我认为我不会使用BusinessLogic对象。太通用了。
如果你正在使用Spring,我想知道你是否可以更好地利用面向方面的编程来应用你的规则。
我会研究Spring support JSR-94是否可以帮助您。也许你可以使用规则引擎在对象中嵌入复杂的行为。
最好的建议是阅读Spring推荐的分层习语中的章节和经文:
答案 1 :(得分:1)
我觉得MVC架构......这应该是LAyers的流程......
a)动作类......就像我们在Struts中一样...来自网页的所有参数都应该在这个类中处理......所有的验证都应该由表格的验证器来处理......
b)从这个动作类中调用你的业务类,它为给定的动作执行所有的业务逻辑....说给患者计费......这将使医生与之相关并且说给医生一些委托... c)DTO图层...你应用中所有类的getter setter ...可以被所有层使用...患者,账单,医生等可以是少数例子...... d)DAO层......与数据库交互的东西......它可以使用hibernate,JDBC等进行交互...所有的查询都写在它们中......做所有的缓存等等......所以图层是
Action调用业务层调用DAO层..DTO可以被所有层使用,也可以作为请求对象发送回JSP页面以显示数据......