举个例子:一个论坛,用户类型分为:游客、普通用户、版主、管理员。
下面是封装:
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.   

    用户一个实体类就可以了,通过角色类实现用户角色
    Model,实现业务实体。 
    IDAL,实现接口。 
    DAL,实现接口里的方法。 
    web.config里的配置信息,为SQLServerDAL的程序集。 
    DALFactory,返回程序集的指定类的实例。 
    BLL,调用DALFactory,得到程序集指定类的实例,完成数据操作方法。 
    WEB,调用BLL里的数据操作方法。