很深的设计问题啊。
1, 个人认为 业务逻辑层与struts之间总是使用参数进行耦合 可以提高灵活性.
2, 文件过大 没有明白lz 的意思.
3, 定义常量的静态类: 优点是使用方便 ,性能更好. (适合不变化的一些值 如编码设置等 .)
配置文件: 灵活性好.可以随时修改 . 缺点: 要通过解析.使用麻烦.而且要去读取这个配置文件.无疑要消耗性能.
这个问题也就是 在 灵活 和 性能 上做一个权衡把。纯属个人观点.
1, 个人认为 业务逻辑层与struts之间总是使用参数进行耦合 可以提高灵活性.
2, 文件过大 没有明白lz 的意思.
3, 定义常量的静态类: 优点是使用方便 ,性能更好. (适合不变化的一些值 如编码设置等 .)
配置文件: 灵活性好.可以随时修改 . 缺点: 要通过解析.使用麻烦.而且要去读取这个配置文件.无疑要消耗性能.
这个问题也就是 在 灵活 和 性能 上做一个权衡把。纯属个人观点.
解决方案 »
- 关于jfreechart中文显示出现白框框的问题,菜鸟求解
- 向大神求助!
- [org.hibernate.util.JDBCExceptionReporter] 只进 ResultSet 不支持请求的操作。
- dlog 4.0版本的源代码?
- Webservice能够传递包含公有成员方法的复杂对象吗?
- 个位帮个忙!急。jcr创建节点的时候如何给节点属性?
- Middlegen hibernate配置的问题
- 用java怎么把html页面导出到excel里
- 初学hibernate出错问题,请指教!
- 为什么我写的applet读写xml程序在jbuilder中可以用,但打成JAR放在tomcat下时,就不能用了?
- csdn打开真慢
- 刚刚开始java dev之路的我,该逐步掌握哪些知识
但如果使用参数耦合,我要在数据库/web层/业务逻辑/接口/action 这些地方进行改动,而且还造成了多余的代码,这样是否有意义呢?
注:struts可以支持在web层/action 通过领域模型进行值传递。
第二点:就是说,如果所有的领域模型都有关联,按照要求来说,应该把所有的业务逻辑都置于一个业务逻辑类中,这样是否会造成这个业务逻辑类过于庞大?
会不会有更好的方法避免的这样的问题呢?
第三点:楼上的朋友叫的很有道理,受教了!!
刚接触struts2 其他的还不明白
1、dao 层可以抛弃,但需要一个 BaseEntityManager 或 BaseEntityService 类,该类使用范型实现基本的 CRUD 操作,其他业务逻辑 Manager 类扩展该类,实现特殊的业务逻辑,业务逻辑层和 struts 之间通过领域模型进行耦合。
2、仔细分析一个业务逻辑的“所属”问题,确认和该业务逻辑更加“亲密”的 Manager,并放置到该 Manager 中。
3、常量应放入到不同的静态类中,而不是一个 Constants 中。以上属于个人意见。
3、“为什么常量要放在不同的静态类中,不放在一个Constants呢?”——这个问题怎么说呢,如果是零散的系统级常量放到 Constants 中没有问题,但是有些实体属性常量,如销售单上的“发票种类”,我觉的应该定义一个 InvoiceTypePropertyConstants 来存放常量(因为 InvoiceType 也可以在采购单中出现,所以如果放到销售单中是不适合的)。另外说一下,如果你觉得适合当然也可以在 xml 文件中配置,相应的类用单例模式,不存在2楼所说的性能问题(一次载入)。
每个Action类只依赖自己相关的接口,不相关的接口,完全与已无关。
实现类实际只有一个,但是实现了所有的接口。只要关联操作的接口定义的好,Action的依赖会尽量减少。
这样也不至于接口过于庞大。大家帮忙参考一下!先谢谢。
所有的Action类还是会依赖这些(与自己相关的)关联操作的接口。
每一个领域模型对应一个Service接口——这个没有问题。然后,再定义一个接口(或多个接口),表示多个领域模型之间关联的一些操作。——这个要看具体情况,虽然这些操作会涉及多个领域模型,但如果“所属”关系比较明确,我觉得没有必要另外定义接口。每一个领域模型对应一个Action类——这个问题有多种情况,我简单的说一下:
1、如果是“传统的” Web 应用,每个 Action 应该对应一个页面比较合理,实际上大部分应用也是这么做的。
2、如果按 REST 构架思想,每个 Action 应该对应一个领域模型(这里领域模型既是资源)。
第一种做法会比较简单,第二种做法除了工作量大还会涉及其他很多知识,但是也拥有 REST 构架的好处。如果你的应用是纯粹的 Web 应用,并且不存在为其他第三方提供接口的,建议第一种做法。