三层是什么
三层架构(3-tier architecture)就是将整个业务应用划分为:
- 界面层(User Interface Layer)
❤ 作用: 向用户展现特定业务数据,采集用户的输入信息和操作
【PS:设计原则:用户至上,兼顾简洁】
- 业务逻辑层(Business Logic Layer)
❤ 作用: 主要是负责对数据层的操作,吧一些数据层的操作进行组合。
- 数据访问层(Data Access Layer)
❤ 作用: 和数据源打交道,进行Select,Insert/Update,Delete等操作。
三层的目的
- 高内聚,低耦合
三层何时使用
何时使用三层:
当你的业务复杂到一定程度,当你的程序存储到相应的数据库的独立的数据存储集中时需要:把数据访问脱离业务,业务脱离UI。此种情况下:UI只需要呼叫业务访问层就可以使用。
三层的具体应用
- D层只提供基本的数据访问,不包含任何业务相关的逻辑处理。
- U层只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理
- B层负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给D层处理。处理完成后,返回必要数据给U层。
三层的优缺点
优点:
★ 开发人员可以只关注整个结构中的其中某一层
★ 可以很容易的用新的实现来替换原有层次的实现。
★ 可以降低层与层之间的依赖
★ 有利于标准化
★ 有利于各层逻辑的复用
★ 结构更加明确
★ 在后期维护的时候,极大的降低了维护成本和维护空间
缺点:
☆ 降低了系统的性能。这是不言而喻的。如果不采用分层结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却是必须通过中间层来完成。
☆ 有时会导致级联的修改。这种修改体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
☆ 增加了开发成本。
三层间的引用
三层的代码
U层代码:
private void BTLogin_Click(object sender, EventArgs e)
{
try
//对try块代码进行异常捕捉,
//如无异常则进行直try块结束,
//如有异常则跳转进入catch块。
{
string userName = txtUserName.Text.Trim();
string password = txtPassword.Text;
Login.BLL.LoginManager mgr = new Login.BLL.LoginManager();
//将用户输入的数据传给BLL,在下面一句的使用中,就直接从BLL调用数据
Login.Model.UserInfo user = mgr.UserLogin(userName, password);
//在这里就可以返回model里的userinfo
Mes