崔莺莺要明媒正娶,张生你怎么看?

简介:   话说张生和崔莺莺历经波折,最后有情人终成眷属。但是生活中的人都是现实的,即使男人再好没房没车也白搭;所以最后崔莺莺就要求张生准备一份聘礼,如果准备的聘礼符合自己的要求,就嫁给张生;如果聘礼不和自己的心意,就出家削发为尼,一辈子不谈婚事!以此为故事背景今天就谈一下三层的学习。

  话说张生和崔莺莺历经波折,最后有情人终成眷属。但是生活中的人都是现实的,即使男人再好没房没车也白搭;所以最后崔莺莺就要求张生准备一份聘礼,如果准备的聘礼符合自己的要求,就嫁给张生;如果聘礼不和自己的心意,就出家削发为尼,一辈子不谈婚事!以此为故事背景今天就谈一下三层的学习。

  崔莺莺想要明媒正娶,在古代男女之间是不直接接触的,所以张生请了王婆来给保媒,王婆年事已高不能干体力活,她找了个挑运工帮她挑聘礼,从自己的媒人钱里给挑运工支付工钱。此为故事中的主要任务,下面介绍一下他们在三层中扮演的角色。

  三层的划分目的是为了高内聚低耦合的思想,所以分的层次也说法不一,通常划分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。

  1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

  2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

  3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。

  故事中人物扮演角色:张生(UI),王婆(BLL),崔莺莺(DAL)。剩下挑运工来扮演实体层,实体层严格的来说不算是一层,我们更喜欢叫它实体类,它用来存储数据在三层中的上蹿下跳,跟所有的层都能打交道。

  下面我们就看看张生和崔莺莺到底能不能喜结连理吧!

  男女之间的事情往往是女方比较腼腆(当然不能排除当今社会的女汉子),所以张生要主动请王婆帮她下聘礼(U层要引用B层)。王婆要带着聘礼去找崔莺莺下聘,前面说了女方腼腆所以王婆要主动把聘礼送过去,才能知道是不是崔莺莺想要的礼物(B层要引用D层)。挑运工跟着王婆挑着聘礼穿梭在张生和崔莺莺之间,所以张生、崔莺莺、和王婆都要依赖挑运工(三层都要引用实体层)。如果王婆带着聘礼去了,正和崔莺莺的意愿,那么这桩亲事就算成了,如果崔莺莺见到聘礼不合心意,那么就只能出家了!

 

 

<span style="font-family:KaiTi_GB2312;font-size:18px;">  //U层代码
        private void button1_Click(object sender, EventArgs e)
        {
            string GiftName = textBox1.Text.Trim();
            王.婆.Xiapin xp = new 王.婆.Xiapin();
            if (xp.XiaPin(GiftName)==true)
            {
                MessageBox.Show("下聘成功!");
            }
            else
            {
                MessageBox.Show("还是削发为尼吧!");
            }
        }</span>


 

<span style="font-family:KaiTi_GB2312;font-size:18px;"> //B层代码
        public bool XiaPin(string GiftName)
        {
            崔.莺莺.Gift gift = new 崔.莺莺.Gift();
            挑.运工.GiftInfo pinli = gift.SelectGift(GiftName);

            if (pinli != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }</span>


 

<span style="font-family:KaiTi_GB2312;font-size:18px;">//D层代码
        public 挑.运工 .GiftInfo SelectGift(string GiftName)
        {
            using(SqlConnection conn = new SqlConnection(gongju.ConnString))
            {
                conn.Open();
                string strSql="SELECT GiftName FROM GiftInfo WHERE GiftName=@GiftName";
                SqlCommand cmd = new SqlCommand(strSql,conn);
                cmd.Parameters.Add(new SqlParameter("@GiftName", GiftName));
                SqlDataReader reader = cmd .ExecuteReader();
                挑.运工.GiftInfo gift = null;
                while (reader .Read ())
                {
                    if (gift ==null )
                    {
                        gift = new 挑.运工.GiftInfo();
                    }
                    gift .GiftName = reader.GetString  (0);
                }
                return gift;
            }
        }</span>


 

<span style="font-family:KaiTi_GB2312;font-size:18px;">//实体层代码
    public  class GiftInfo
    {
        public string GiftName {get ;set;}
    }</span>


  话说张生一夜发家准备的聘礼是黄金万两,正和崔莺莺的心意(哪个女人不爱财):

  可惜的是挑运工心术不正,把王婆打晕后带着聘礼逃之夭夭了,张生能拿着当初两人的定情信物“口脂五寸”去下聘:

  哎!现实就是这么残酷!!!

 

目录
相关文章
【5分钟+】计算机系统结构:CPU性能公式
【5分钟+】计算机系统结构:CPU性能公式
818 0
【5分钟+】计算机系统结构:CPU性能公式
|
Linux API C#
WPF跨平台方案?
WPF跨平台方案?
460 1
|
存储 分布式计算 前端开发
淘宝widget链路方案总结
目前widget生态已经做了大量的基建工作,同时在widget生态的演进过程中我们发现如何匹配用户的偏好一直以来是一个挑战工作,本文介绍了widget的整体链路。
256 0
|
网络安全 网络架构 Python
如何写批量备份交换机配置的Python脚本?今日文章安排5个厂商的,牛叉!
如何写批量备份交换机配置的Python脚本?今日文章安排5个厂商的,牛叉!
314 0
如何写批量备份交换机配置的Python脚本?今日文章安排5个厂商的,牛叉!
|
存储 编解码 监控
AD2428W手册解读之操作与配置 上
AD2428W手册解读之操作与配置 上
AD2428W手册解读之操作与配置 上
|
前端开发
如何自定义Electron的通知事件,自定义窗口大小
当外层添加拖拽后,里层添加点击事件时,点击事件的元素要添加这个样式方能添加点击事件
|
人工智能 算法 前端开发
7月博主有奖征文,百分百得奖
7月博主有奖征文,百分百得奖
1367 14
|
机器学习/深度学习 传感器 算法
基于冲突搜索的多机器人路径规划问题研究附Matlab代码
基于冲突搜索的多机器人路径规划问题研究附Matlab代码
|
弹性计算 安全 Linux
esc使用体验心得
在我看来云服务器有以下优点:省力,不需要专门花时间去维护服务器的硬件,看服务器是否运行正常;稳定,这应该是最主要的有点;安全,做web开发最怕的当然是攻击,所以选择大厂的服务器,自然是最香的;省钱,这当然也是很重要的,尤其对于我们学生用户还是很友好的,爆赞!
|
存储 Java API
java集合系列(2)Collection(源码分析)
前一篇博客,我们基本上认识了集合,从这篇博客开始参考API文档,和源码分析,详细的介绍每个集合类的使用,力求在源码的角度来分析,加深理解。
164 0
java集合系列(2)Collection(源码分析)