逻辑层,说的最简单就是把从数据层获得的数据进行再次筛选和处理,得到我们可以直接应用的数据。
而在表现层,则不去理会用的是数据库还是XML文件,它只考虑将逻辑层的数据直接地显示或者应用。
比如:本例中,添加文章的时候,对于数据的正确性验证的逻辑判断就是在逻辑层发生,由逻辑层提交给数据进行处理,对于数据层它认为的数据应该是合法的。
public void SaveMessage(MessageBoardInfo msg)
{
if (msg.MessageBody != null && msg.MessageBody.Trim() != "" && msg != null)
{
MessagesBoard.DAL.Messages message = new MessagesBoard.DAL.Messages();
message.SaveMessage(msg);
}
else
{
string alertString = "留言失败,留言本不能为空!";
throw new Exception(alertString);
}
}
对于现实,表现层要做的仅仅是调用逻辑层,然后为控件赋值或者绑定。
private void BindMessages()
{
MessageBoardInfo[] msgb = (new MessagesBoard.BLL.Messages()).GeiMessage();
MessageList.DataSource = msgb;
MessageList.DataBind();
}
同样,对于添加而言,也是如此,仅仅需要获得数据,然后调用逻辑层。
protected void btn_Click(object sender, EventArgs e)
{
string body = Msgs.Text.Trim();
DateTime time = DateTime.Now;
MessageBoardInfo messages = new MessageBoardInfo();
messages.MessageBody = body;
messages.MessageTime = time;
MessagesBoard.BLL.Messages saveMe = new Messages();
saveMe.SaveMessage(messages);
Response.Redirect("Show.aspx");
}
这也正是三层体系的魅力所在,所有的操作互不影响,松散耦合,仅仅提供出需要调用的接口。当然,这只是一个小程序,而在真实的大型项目中往往要复杂的多,而且要学会活学活用。因为三层并不是死的,三层仅仅是N层体系的一种典型而已,根据项目的大小,有可能程序会有4层,也可能是1层。^_^