设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 1869|回复: 6
打印 上一主题 下一主题

三层与mvc [复制链接]

Rank: 8Rank: 8

跳转到指定楼层
1#
momo 发表于 2011-5-25 22:56:19 |只看该作者 |倒序浏览
三层:即表现层UI  业务逻辑层BBL  数据访问层DAL
实现方法就是  表示层调用逻辑层方法,逻辑层调用数据访问层方法,
举例子消化:
比如要查出某个用户信息,或者所有用户信息

表示层:那就是显示出所有人的信息喽


先说数据访问层:就是sql中增删改查的方法
DAL----->DB.cs
namespace DAL
{  public class DB  
    { SqlHelper helper = new SqlHelper();
       public DataTable GetAll()
       { string strsql = "select * from users";
           SqlCommand cmd = helper.GetCommand(strsql, null);
           DataTable dt = new DataTable();
           using(SqlDataReader rdr=cmd.ExecuteReader())
           { dt.Load(rdr);}
           return dt;
       }
       public DataTable GetByModel(UserInfo model)
       { SqlHelper helper = new SqlHelper();
           string strsql = "select * from users where id=@id";
           SqlParameter[] parm = new SqlParameter[]
           {new SqlParameter("@id",model.ID)};
           SqlCommand cmd = helper.GetCommand(strsql, parm);
           DataTable dt = new DataTable();
           using (SqlDataReader rdr = cmd.ExecuteReader())
           {dt.Load(rdr);}
           return dt;
       }
    }
}

业务逻辑层:
BBL------->userBBL.cs   调用db.cs中的方法   它自己也是个方法

namespace BBL
{   public class UserBBL
    {  DB db = new DB();
        UserInfo ui = new UserInfo();
        public DataTable ALL(UserInfo model)
        { if (model != null)
            {  return db.GetByModel(model); }
            else
            { return db.GetAll(); }
        }
    }
}

其实我在学的时候做东西就没用过BBL,我只觉得这层没啥太大价值(一种隔靴挠痒的感觉),毕业设计时我直接写完实体类,数据访问层中的那些方法,就跑到前台直接去调用了,(我有这样的认知自认为原因有二,一是可能它本身就真没啥价值(哇咔咔莫要讲我见识短,就是短还不让人家说了,口黑口黑)二是我做的那个站不大业务逻辑不复杂,其实又在变相说我见识浅,)以上是俺对三层见解认知


至于那个mvc嘛,最近在啃文档,死磕也没磕下来,还是认为他一直是在讲三层,至于mvc的理解现在写不出来哇,因为我自己举不出例子来,所以就是没理解,那个mvc后续吧,接下来去磕个mvc的站去,希望能够理解的了,欢迎到时候再听漠漠大师讲解mvc( 是不是有人会讲这mm真是有够臭屁)
嘎嘎,混混要给我五十大分,不给我分,跟你没完
1

查看全部评分

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0
过了爱做梦的年纪
轰轰烈烈不如平静

Rank: 8Rank: 8

2#
那个谁 发表于 2011-5-26 08:23:50 |只看该作者
漠漠厉害。。毕竟勇气可嘉。。。。混混给分、不给分跟你没完。。

使用道具 举报

Rank: 8Rank: 8

3#
momo 发表于 2011-5-26 09:22:07 |只看该作者
那个谁 发表于 2011-5-26 08:23
漠漠厉害。。毕竟勇气可嘉。。。。混混给分、不给分跟你没完。。 ...

杰杰过来请你吃饭,今天得分啦,咚咚呛,咚咚呛!!!!!
过了爱做梦的年纪
轰轰烈烈不如平静

使用道具 举报

Rank: 8Rank: 8

4#
那个谁 发表于 2011-5-26 10:26:35 |只看该作者
momo 发表于 2011-5-26 09:22
杰杰过来请你吃饭,今天得分啦,咚咚呛,咚咚呛!!!!!

又欠我一顿饭。。。

使用道具 举报

Rank: 8Rank: 8

5#
momo 发表于 2011-5-26 14:03:57 |只看该作者
那个谁 发表于 2011-5-26 10:26
又欠我一顿饭。。。

杰杰给补充下吧,我今天再看昨晚写的好像不对,里面有错误
过了爱做梦的年纪
轰轰烈烈不如平静

使用道具 举报

Rank: 8Rank: 8

6#
那个谁 发表于 2011-5-26 14:24:43 |只看该作者
momo 发表于 2011-5-26 14:03
杰杰给补充下吧,我今天再看昨晚写的好像不对,里面有错误

我表示不会。。

使用道具 举报

Rank: 8Rank: 8

7#
momo 发表于 2011-5-26 14:34:44 |只看该作者
俺不是要误导大家的昂,上面仅代表个人观点,解释权归漠漠官方所有
下面是比较准确的解释吧,确定及肯定的讲我认知真的很浅



业务逻辑层用于做一些有效性验证的工作,以更好的保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。

  业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。

  业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
过了爱做梦的年纪
轰轰烈烈不如平静

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-5-7 11:45 , Processed in 1.160316 second(s), 12 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部