黑马程序员---.NET多层架构体系

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

    在外观层、中间服务层和数据访问层任意一层之间再加入一个或多个层,这样就形成了N层架构。以现实中的小餐馆为例,某一天,这个小餐馆来了一个名叫武松的食客。这个食客进来之后就不停的要酒喝,但是小餐馆却有个“三碗不过岗”的规矩,那么这个规矩就可以被视为是一个层。可以称这个层为“商业逻辑层”。例如在用户留言的时候,要检查用户当天的留言次数。如果用户当天留言超过3次,那么就抛出异常终止程序的运行。

using System;

using TraceLWord8.DALFactory;  // 引用数据访问层工厂
using TraceLWord8.DBTask;   // 引用抽象的数据访问层

namespace TraceLWord8.BusinessLogic
{
public class LWordPostLogic
 {
  // 检查用户当天的留言次数
  public void CheckLWordCountToday(string userName)
  {
   DateTime startTime = DateTime.Now.Date;


   // 获取用户在指定时间内的留言次数
   int lwordCount = this.DriveDBTask().LWordCount(
    userName, startTime, startTime.AddDays(1));

   if (lwordCount > 3)
    throw new Exception("用户当天留言次数大于3 次,不能再留言");
  }

 

// 驱动数据库任务
  private ILWordTask DriveDBTask()
  {
   return DBTaskDriver.DriveLWordTask();
  }
 }
}

 

// 发送留言信息到数据库
public void PostLWord(LWord lword)
{
 string nickName = lword.FromUser.NickName;
 string passWord = lword.FromUser.PassWord;
 string textContent = lword.TextContent;
 ...
 // 获取注册用户信息
 RegUser regUser = regUserService.GetRegUser(nickName);

 if (regUser != null)
 {
  ...
 }
 else
 {
  ...
 }

 // 在留言之前检查用户留言次数
 (new LWordPostLogic()).CheckLWordCountToday(nickName);

 // 插入新留言信息
 this.DriveDBTask().PostLWord(lword);
}

 

当用户当天留言次数超过3次会出现异常

有一个问题就是为什么不把这样的逻辑判断放入到中间服务层呢?或者说中间服务层与商业逻辑层有何差别呢?简单的说就是中间服务层只是对每一个功能步骤的组合,形成一个完整的功能过程。而商业逻辑层则只是做单纯的商业逻辑判断,并不知道下一步该做什么?小餐馆虽然有“三碗不过岗”的规矩,但是那并不会影响到服务生向武松收酒水钱和上酒的服务过程。之后当武松过了景阳岗,打死了老虎,令小餐馆取消了“三碗不过岗”的规矩。但同样还是没有影响到服务生向其他吃客要酒钱和上酒的服务过程。

 

 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

详细请查看:http://net.itheima.com/ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Element UI 中,`el-row` 和 `el-col` 可以多层嵌套使用,实现更加复杂的布局。例如,可以通过多层嵌套实现两列布局中,左侧固定宽度,右侧自适应宽度的效果。 下面是一个示例代码,展示了如何使用多层嵌套的 `el-row` 和 `el-col` 实现这个效果: ```html <template> <el-row> <el-col :span="6"> <div class="left">左侧固定宽度</div> </el-col> <el-col :span="18"> <el-row> <el-col :span="8"> <div class="right">右侧自适应宽度</div> </el-col> <el-col :span="8"> <div class="right">右侧自适应宽度</div> </el-col> <el-col :span="8"> <div class="right">右侧自适应宽度</div> </el-col> </el-row> </el-col> </el-row> </template> <script> export default { data() { return {} } } </script> <style scoped> .left { width: 200px; height: 100px; background-color: #ccc; } .right { height: 100px; background-color: #ddd; margin: 10px; } </style> ``` 在这个示例中,外层的 `el-row` 表示整个布局的行,其中包含两个 `el-col`,分别表示左侧固定宽度区域和右侧自适应宽度区域。右侧自适应宽度的区域再次使用了 `el-row` 和 `el-col` 进行多层嵌套,实现了三列等宽的布局。 注意,在多层嵌套的情况下,需要根据具体情况来设置 `span` 属性,以实现合适的布局效果。同时,也需要注意多层嵌套可能会导致布局嵌套层级过深,对页面的性能和维护带来不利影响。因此,在实际开发中,应根据具体情况来选择合适的布局方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值