Layered/Tiered 架构 - 代码隔离
Layered/Tiered Architecture - Segregation of code
从最近几个月开始,我一直在使用 spring-mvc
开发企业应用程序。我听说过具有这些 layers/tiers - UI、业务逻辑 和 DAO 的 3 层架构。 这种架构是我知道。但是在处理一些 spring-mvc
企业项目时,我发现了一些像这样的层(基于代码流)-
Controller
|
v
Service
|
v
Manager
|
v
Dao
我发现上面的分层结构与三层结构相比有点混乱。因为我发现在service和manager层都写了一些业务逻辑。混淆可能是由于缺乏注意造成的,或者没有其他选择而不是这样做。但就像 3 层架构一样,每一层背后可能都有一些原因。有人可以解释为什么这些层是为了什么?
根据 Whosebug
的说明,这可能不是一个好问题。但这对于像我这样的新开发者来说已经足够了 suggestions/tips 了。
谢谢。
这是一个 MVC(模型-视图-控制器)架构,而不是旧的(但仍被广泛使用的)数据 - 业务逻辑 - UI 模型。它们只是不同的架构模型,虽然它们可以进行比较和对比,但它们绝对不会一对一地映射到彼此。如果您发现自己正在从事一个使用 MVC 的项目,我强烈建议您找一本关于 MVC 的书(或者甚至专门关于 Spring-MVC 的书)并进行一些研究。
我已经实现了一个与您描述的设计非常相似的设计。我的理由是 "Manager" 层有助于从服务层抽象任何特定的数据访问代码。
所以看起来像这样的服务(伪代码):
function getCustomer(id) {
sql = "select * from customer where id = @id";
return db->execute(sql, id);
}
最后看起来像这样:
function getCustomer(id) {
return dbo->getCustomerById(id);
}
这个额外的层为我的项目做了一些事情。它集中了所有数据访问,允许我在其他项目中使用管理器 类。它还让我可以更轻松地在不同的数据存储策略(结构化 sql -> nosql)之间切换,而无需更改我的任何服务层代码。
从最近几个月开始,我一直在使用 spring-mvc
开发企业应用程序。我听说过具有这些 layers/tiers - UI、业务逻辑 和 DAO 的 3 层架构。 这种架构是我知道。但是在处理一些 spring-mvc
企业项目时,我发现了一些像这样的层(基于代码流)-
Controller
|
v
Service
|
v
Manager
|
v
Dao
我发现上面的分层结构与三层结构相比有点混乱。因为我发现在service和manager层都写了一些业务逻辑。混淆可能是由于缺乏注意造成的,或者没有其他选择而不是这样做。但就像 3 层架构一样,每一层背后可能都有一些原因。有人可以解释为什么这些层是为了什么?
根据 Whosebug
的说明,这可能不是一个好问题。但这对于像我这样的新开发者来说已经足够了 suggestions/tips 了。
谢谢。
这是一个 MVC(模型-视图-控制器)架构,而不是旧的(但仍被广泛使用的)数据 - 业务逻辑 - UI 模型。它们只是不同的架构模型,虽然它们可以进行比较和对比,但它们绝对不会一对一地映射到彼此。如果您发现自己正在从事一个使用 MVC 的项目,我强烈建议您找一本关于 MVC 的书(或者甚至专门关于 Spring-MVC 的书)并进行一些研究。
我已经实现了一个与您描述的设计非常相似的设计。我的理由是 "Manager" 层有助于从服务层抽象任何特定的数据访问代码。
所以看起来像这样的服务(伪代码):
function getCustomer(id) {
sql = "select * from customer where id = @id";
return db->execute(sql, id);
}
最后看起来像这样:
function getCustomer(id) {
return dbo->getCustomerById(id);
}
这个额外的层为我的项目做了一些事情。它集中了所有数据访问,允许我在其他项目中使用管理器 类。它还让我可以更轻松地在不同的数据存储策略(结构化 sql -> nosql)之间切换,而无需更改我的任何服务层代码。