论外部调用代理应该属于那一层

今天关于这个问题我和同事进行非常激烈的讨论,最后还有有点不了了之的感觉。

在回家的路上我想到了如何来决定这个问题。


在论述这一问题之前先描述一下上下文。

首先我公司普通的项目使用以下的架构。

WebSite=>WCF=>BLL=>Repository=>DAL=>DB

同层之间可以直接调用但不能调用其他同层的下一层。


各层之间的职责如下:

WebSite:页面展现层。提供页面管理以及绘制。

WCF:服务提供层。提供服务管理以及初始化。

BLL: 业务逻辑层,用于提供业务逻辑的实现。

Repository:业务对象仓储层,用于提供业务对象的存取。

DAL:数据访问层,用于提供数据对象的永久化以及读取。

DB:数据库,用于存放数据对象的永久化数据。


在我和同事的讨论中主要是集中在外部服务调用代理也就是WSProxy到底是应该视作BLL层以提供其他BLL层调用还是视作Repository层让其他Repository层进行调用。


BLL层主要有以下业务。

1、不会返回业务数据的业务。如:发送一封邮件,发送一条短信。

2、返回业务数据的业务。如:得到订单列表、已发送邮件列表等。


Repository主要是以下业务。

1、为BLL层提供业务数据。

2、将业务数据转为固化数据提供给DAL层 进行固化。


明确了每一层的业务,那要对WSProxy进行分层也只需要明确WSProxy层的业务就可以得到。

我们调用WSProxy层主要有以下业务。

1、得到业务数据。如:得到主站点已注册的用户信息。

2、使用一个业务。如:通过主站点的发送短信,邮件等。


由此 可以看到,WSProxy所提供的业务BLL层提供的业务是一致的,所以应该视作BLL层并让其他BLL层进行调用。


本文出自 “技术源于专注” 博客,转载请与作者联系!

你可能感兴趣的:(架构,分层,服务调用)