大家好,欢迎来到IT知识分享网。
本文源自《PoEAA》,如预知详细内容请阅读原书
通盘考虑
好的决策不是一成不变的。架构重构很难,人们也经常忽视它的代价,但是并非不可能。我给的建议就是:即使你对极限编程不感兴趣,你还是应该认真考虑三方面的技术实践:持续集成、测试驱动开发和重构。这些技术虽然不是万能的灵丹妙药,但他们能够帮助你在需要的时候更容易地改变你的系统。除非你比迄今为止我见过的人更能干或更走运。
8.1 从领域层开始
8.2 深入到数据源层
8.2.1事务脚本的数据源
8.2.2表模块的数据源
8.2.3领域模型的数据源
8.3 表现层
8.4 一些关于具体技术的建议
8.4.1 Java和J2EE
无论在什么情况下使用实体Beans,都应该尽量避免给它们一个远程接口。我一直不知道首先给实体Beans定义一个远程接口的原因何在。实体Beans一般都用在领域模型或行数据入口中。无论哪种情况,它们所需要的都是细粒度的接口。但是远程接口一般都是粗粒度的,因此尽量使你的Beans本地化。
8.4.3 存储过程
8.5 其他分层方式
Brown分层模型
Brown | Fowler |
---|---|
表现层 | 表现层 |
控制层/中介层 | 表现层(应用控制器) |
领域层 | 领域层 |
数据映射层 | 数据源层(数据映射器) |
数据源层 | 数据源层 |
Core J2EE分层模型
Core J2EE | Fowler |
---|---|
客户层 | 运行于客户端的表现层(例如,胖客户系统) |
表现层 | 运行于服务器端的表现层(例如,HTTP处理程序、服务器页面) |
业务层 | 领域层 |
集成层 | 数据源层 |
资源层 | 需要与数据源层通信的外部资源 |
Microsoft DNA分层模型
Microsoft DNA | Fowler |
---|---|
表现层 | 表现层 |
业务层 | 领域层 |
数据访问层 | 数据源层 |
Marinescu分层模型
Marinescu | Fowler |
---|---|
表现层 | 表现层 |
应用层 | 表现层(应用控制器) |
服务层 | 领域层(服务层) |
领域层 | 领域层(领域模型) |
持久层 | 数据源层 |
Nilsson分层模型
Nilsson | Fowler |
---|---|
顾客层 | 表现层 |
顾客帮助层 | 表现层(应用控制层) |
应用层 | 领域层(服务层) |
领域层 | 领域层(领域模型) |
持久访问层 | 数据源层 |
公共存储过程层 | 数据源层(可能包含一些领域层) |
私有存储过程层 | 数据源层(可能包含一些领域层) |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132879.html