机房合作之外观模式浅谈

外观模式

概述

为系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
之前写代码的时候,我总会把U层和外观层写的耦合性很高,这是病得治。将所有需要的方法或属性,组合一起放在Facade层,以备外界调用。如下图所示。

此时,用户不需要了解系统中的方法MethodA,B,C...只需要规定统一一致的Facade类就可以直接调用。掌握了模式的理论知识,接下来就是实践了。

结构


实现


两个子系统的类

<span style="font-family:Microsoft YaHei;font-size:18px;">#region 教师端外观类
    public class TeacherFacade
    {
        
        //登录
        public List<UserEntity > FacadeTeacherLogin(UserEntity User)
        {
            
            LoginBLL TeacherLogin=new LoginBLL();           //实例化B层登录业务
            List<UserEntity> list = TeacherLogin.InquireUser(User);  //调用B层登录方法

            return list;    //返回登录实体
        }
    }
    #endregion

    #region 学生端外观类
    public class StudentFacade
    {
<span style="white-space:pre">	public List<StudentEntity> FacadeStudentLogin(StudentEntity Student)
        {


            LoginBLL StudentLogin = new LoginBLL();           //实例化B层登录业务
            List<StudentEntity> list = StudentLogin.InquireUser(Student);  //调用B层登录方法


            return list;    //返回登录实体
        }</span>
    }
    #endregion
    </span>

外观类

<span style="font-family:Microsoft YaHei;font-size:18px;">public class JFFacade
    {
        TeacherFacade Teacher; //教师外观类
        StudentFacade Student;//学生外观类

        public JFFacade()
        {
            Teacher = new TeacherFacade(); //实例化教师外观类
            Student = new StudentFacade();//实例化学生外观类
        }

        //教师登录外观
        public List <UserEntity > TeacherLogin(UserEntity User)
        {
            List<UserEntity > list=Teacher.FacadeTeacherLogin(User);
            return list;
        }

    }</span>

客户端调用

<span style="font-family:Microsoft YaHei;font-size:18px;">public void TeacherLogin()
        {
            //判断卡号和密码是否正确
            JFFacade LoginFacade = new JFFacade();    //实例化外观类
            UserEntity User = new UserEntity();     //实例化User实体类

            User.userID = txtUserName.Text.Trim();//把txtUsername 的text属性去掉前后空格赋值
            User.password = txtPassword.Text.Trim();

            List<UserEntity> list = LoginFacade.FacadeLogin(User); //调用外观教师端登录方法

           
                if (list.Count != null && list.Count > 0) //用户名存在
                {
                    this.Close(); //关闭登录窗体
                    frmMainTeacher frmMainTeacher = new frmMainTeacher();  //显示教师端主窗体
                    frmMainTeacher.Show();

                    //在WorkLog表中添加值班记录

                }
                else
                {
                    return;

                }
<span style="white-space:pre">	</span>}
           
</span>



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 29
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨倩-Yvonne

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值