举个例子:一个论坛,用户类型分为:游客、普通用户、版主、管理员。
下面是封装:
1.数据层:主要4个类:游客、普通用户、版主、管理员,封装了对数据的读写操作。
2.业务逻辑层:主要4个类:版块、主题、帖子、回帖,封装了相应的操作,调用数据层中的4个类。关键的来了:用设计模式中的代理模式,再有4个类分别作为对版块、主题、帖子、回帖这4个类的代理类,主要工作室用来验证用户权限。
3.UI层,页面后台代码里,调用业务逻辑层中的代理类。
大家看看我的思路正确不?要是犯了基本的错误,以后就要重新编了。关于代理类,我也是今天刚看到的,我写一段代码,大概就是这个样子:
public class Topic
{
public bool 发帖()
{
//......
}
}public class TopicProxy
{
Topic topic = new Topic();
//发帖
public bool PostTopic(帖子的实体类, 权限)
{
if(权限可以发帖)
{
topic.发帖();
}
}
}
下面是封装:
1.数据层:主要4个类:游客、普通用户、版主、管理员,封装了对数据的读写操作。
2.业务逻辑层:主要4个类:版块、主题、帖子、回帖,封装了相应的操作,调用数据层中的4个类。关键的来了:用设计模式中的代理模式,再有4个类分别作为对版块、主题、帖子、回帖这4个类的代理类,主要工作室用来验证用户权限。
3.UI层,页面后台代码里,调用业务逻辑层中的代理类。
大家看看我的思路正确不?要是犯了基本的错误,以后就要重新编了。关于代理类,我也是今天刚看到的,我写一段代码,大概就是这个样子:
public class Topic
{
public bool 发帖()
{
//......
}
}public class TopicProxy
{
Topic topic = new Topic();
//发帖
public bool PostTopic(帖子的实体类, 权限)
{
if(权限可以发帖)
{
topic.发帖();
}
}
}
Model,实现业务实体。
IDAL,实现接口。
DAL,实现接口里的方法。
web.config里的配置信息,为SQLServerDAL的程序集。
DALFactory,返回程序集的指定类的实例。
BLL,调用DALFactory,得到程序集指定类的实例,完成数据操作方法。
WEB,调用BLL里的数据操作方法。