博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多层架构的调用方式(方法回调)
阅读量:6951 次
发布时间:2019-06-27

本文共 1941 字,大约阅读时间需要 6 分钟。

多层架构,一般我们指三层架构,如WEB层,SERVICE层和DATA,其实我是最简单的一种说法,真正的项目开发中,远远不只有这三层,其实在WEB与SERVICE层中还有一个WEB.SERVICE层,主要用来作WEB与SERVICE的服务,它与直接与前台VIEW通讯,也不直接与底层数据通讯,一般来说,都是用来做文件管理,上传,下载,COOKIES的持久化等,一句话,就是与服务器本身相关的东西我们都可以放在本层中.OK,现在言归正传了,今天要说的是什么?多层架构的调用方式,我们来看一下,一般来说,我们要遵守一个原则,高层向底层的调用,底层不要直接调用高层,除非有一些特殊的要求,有这种要求我们也不要直接调用,那么怎么调用呢,我们可以使用回调函数:P,喜喜,看看代码吧!

一个最简单的代码:

#region 回调函数的学习
/*也就是相当把某个方法(WorkDoneHandler())当作参数传递给另外一个方法(Working(WorkDone callBack)).
这样做的好处在于,可以动态的指定执行哪个方法.
比如在Do()方法中,我们指定的callback 是WorkDoneHandler 当然也可以是其它匹配的方法. 而Working()方法 更本不需要知道自己最后执行           的是哪个Handler.*/
 
 
void Working(Delegate callBack)
{
WorkDone _callBack = callBack as WorkDone;
_callBack();
}
 
delegate void WorkDone();
void WorkDoneHandler()
{
Console.WriteLine("WorkDoneHandler");
}
void WorkDoneHandler2()
{
Console.WriteLine("WorkDoneHandler2");
}
 
void Do()
{
WorkDone callBack = new WorkDone(WorkDoneHandler2);
Working(callBack);
}
#endregion

这段代码是我从网上找的,这们高人写的真不错,一针见血,没有费话.

再来看一下,我写的一个DEMO吧

#region 标准分层架构的测试
/// 
/// 模拟DATA层用户登陆功能
/// 
/// 
/// 
public bool DataLogin(Entity.User user)
{
bool flag = false;
if (user.UserName == "zzl")
flag = true;
return flag;
}
/// 
/// Service层,与Data数据层进行交互,对用户登陆进行验证,并返回消息
/// 
/// 
/// 
/// 
public string ServiceLogin(Entity.User user, Delegate a)
{
LoginEventHandler a1 = a as LoginEventHandler; //强转化类型
if (DataLogin(user))
return a1("登陆成功");
else
return a1("用户密码有问题"); //在这个方法中以回调的方法赋值
}
 
delegate string LoginEventHandler(string msg);
 
/// 
/// 提示比它低一层的方法的回调(从底到高的调用)
/// 
/// 
/// 
public string ReBack(string msg)
{
return string.Format("登陆结果:{0}", msg);
}
/// 
/// WEB.Service层登陆
/// 
public string Login(Entity.User user)
{
LoginEventHandler a = new LoginEventHandler(this.ReBack);
return ServiceLogin(user, a);
}
#endregion

调用它时,可以这样写:

Entity.User user = new Entity.User { UserName = "zzl", Password = "zzl123" };
Console.Write(p.Login(user));

转载于:https://www.cnblogs.com/lori/archive/2011/06/16/2082876.html

你可能感兴趣的文章
First Missing Positive && missing number
查看>>
SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 4)
查看>>
10条设计师应该知道的字体设置技巧
查看>>
Mac Brew Uninstall MySql
查看>>
LeetCode刷题笔记-回溯法-分割回文串
查看>>
Serv-U和win2003防火墙的设置
查看>>
【网摘】ActiveX组件及其注册
查看>>
Bootstrap网格系统(Grid System)
查看>>
linux内核参数优化
查看>>
Utils工具方法集插件详解
查看>>
Windows Server定时执行bat
查看>>
Linux RTC Test Example rtctest.c hacking
查看>>
Linux C enum
查看>>
递增三元数组——第九届蓝桥杯C语言B组(省赛)第六题
查看>>
字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码
查看>>
物件捆绑 背包问题 动态规划 求解
查看>>
finish
查看>>
查看系统信息msinfo32工具的使用
查看>>
iso系统镜像刻录到光盘和U盘
查看>>
tcp四次挥手
查看>>