【发布时间】:2011-05-06 13:03:31
【问题描述】:
我有一个一直无法解决的问题:
考虑这两种架构
第一个
UI layer
|
Application layer
|
Domain Layer
|
Infrastructure Layer
第二次
Client Tiers
|
Presentation Tiers
|
Business Tiers
|
Integration Tiers
|
Resources Tiers
它们之间有什么区别。
实体 bean 在这些架构中的位置。如果我有一个带有实现业务逻辑的对象的业务层,为什么我必须在实体 bean 中添加行为。我在某处读到,拥有没有行为的域模型对象是一种反模式。
谢谢
更新
这实际上是我需要做的一个项目(培训)才能让我的 msc 进入分布式系统。
这些实际上是我正在使用的技术
支柱 2 JPA 数据库数据库
所以如果我理解得很好
我的申请包括
客户端层(网络浏览器) 一个表示层(struts 2) 业务层(POJOs + JPA) 集成层(带有休眠 DAO) 一个资源层(HSQLDB)
但由于表示层、业务层和集成层在同一台服务器(tomact)上实现,因此我只有三层架构。我说的对吗?
至于在我的 JPA 对象中包含行为,通常这是我以前做的: 每个 JPA 实体都有一个 dao。 拥有一个管理所需业务逻辑的 bean(如 EJB)。所以我从不把行为放在 JPA 对象上。
例如,我想提出购买请求。我会有一个 CatalogueManager 来帮助我与项目、供应商进行交互。我还会有一个 EmployeeManager 来帮助我与员工互动。最后是一个 PurchaseRequestManager,它将使用前面的两个业务对象来发出 PurchaseRequest。
现在你要告诉我的是将我在 PurchaseManager 中的方法放入 PurchaseRequest JPA 实体中,并对 EmployeeManager 中的方法执行相同操作 => 将它们放入 Employee JPA 实体中。
但是如果我的员工对象也用于人力资源部门会发生什么,我还需要在那里放置其他方法。对于大型应用程序,我将在员工 JPA 实体中有很多方法。这不会适得其反吗?
谢谢
【问题讨论】: