多层架构的调用方式(方法回调)

简介:
多层架构,一般我们指三层架构,如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 标准分层架构的测试
        /// <summary>
        /// 模拟DATA层用户登陆功能
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public bool DataLogin(Entity.User user)
        {
            bool flag = false;
            if (user.UserName == "zzl")
                flag = true;
            return flag;
        }
        /// <summary>
        /// Service层,与Data数据层进行交互,对用户登陆进行验证,并返回消息
        /// </summary>
        /// <param name="user"></param>
        /// <param name="a"></param>
        /// <returns></returns>
        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);
 
        /// <summary>
        /// 提示比它低一层的方法的回调(从底到高的调用)
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public string ReBack(string msg)
        {
            return string.Format("登陆结果:{0}", msg);
        }
        /// <summary>
        /// WEB.Service层登陆
        /// </summary>
        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));
本文转自博客园张占岭(仓储大叔)的博客,原文链接: 多层架构的调用方式(方法回调),如需转载请自行联系原博主。
目录
打赏
0
0
0
0
17
分享
相关文章
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
多LLM摘要框架通过生成和评估两个步骤处理长文档,支持集中式和分散式两种策略。每个LLM独立生成文本摘要,集中式方法由单一LLM评估并选择最佳摘要,而分散式方法则由多个LLM共同评估,达成共识。论文提出两阶段流程:先分块摘要,再汇总生成最终摘要。实验结果显示,多LLM框架显著优于单LLM基准,性能提升最高达3倍,且仅需少量LLM和一轮生成评估即可获得显著效果。
81 10
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
Meta研究团队开发的记忆层技术通过替换Transformer中的前馈网络(FFN),显著提升了大语言模型的性能。记忆层使用可训练的固定键值对,规模达百万级别,仅计算最相似的前k个键值,优化了计算效率。实验显示,记忆层使模型在事实准确性上提升超100%,且在代码生成和通用知识领域表现优异,媲美4倍计算资源训练的传统模型。这一创新对下一代AI架构的发展具有重要意义。
82 11
记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
神经架构搜索:自动化设计神经网络的方法
在人工智能(AI)和深度学习(Deep Learning)快速发展的背景下,神经网络架构的设计已成为一个日益复杂而关键的任务。传统上,研究人员和工程师需要通过经验和反复试验来手动设计神经网络,耗费大量时间和计算资源。随着模型规模的不断扩大,这种方法显得愈加低效和不够灵活。为了解决这一挑战,神经架构搜索(Neural Architecture Search,NAS)应运而生,成为自动化设计神经网络的重要工具。
控制员工上网软件:高可用架构的构建方法
本文介绍了构建控制员工上网软件的高可用架构的方法,包括负载均衡、数据备份与恢复、故障检测与自动切换等关键机制,以确保企业网络管理系统的稳定运行。通过具体代码示例,展示了如何实现这些机制。
157 63
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
本文探讨了在量化交易中结合时序特征和静态特征的混合建模方法。通过整合堆叠稀疏降噪自编码器(SSDA)和基于LSTM的自编码器(LSTM-AE),构建了一个能够全面捕捉市场动态特性的交易系统。SSDA通过降噪技术提取股票数据的鲁棒表示,LSTM-AE则专注于捕捉市场的时序依赖关系。系统采用A2C算法进行强化学习,通过多维度的奖励计算机制,实现了在可接受的风险水平下最大化收益的目标。实验结果显示,该系统在不同波动特征的股票上表现出差异化的适应能力,特别是在存在明确市场趋势的情况下,决策准确性较高。
91 5
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
“论模型驱动架构设计方法及其应用”写作框架,软考高级,系统架构设计师
模型驱动架构设计是一种用于应用系统开发的软件设计方法,以模型构造、模型转换和精化为核心,提供了一套软件设计的指导规范。在模型驱动架构环境下,通过创建出机器可读和高度抽象的模型实现对不同问题域的描述,这些模型独立于实现技术,以标准化的方式储存,利用模型转换策略来驱动包括分析、设计和实现等在内的整个软件开发过程。
394 3
掌握微前端架构:构建现代Web应用的新方法
本文介绍了微前端架构的概念及其在现代Web应用开发中的优势与实施方法。微前端架构通过将应用拆分成独立模块,提升了开发效率和灵活性。其核心优势包括技术栈灵活性、独立部署、团队协作及易于维护。文章详细阐述了定义边界、选择框架、管理状态和通信等关键步骤,并讨论了状态同步、样式隔离及安全性等挑战。微前端架构有望成为未来Web开发的重要趋势。
|
8月前
业务架构问题之什么是自上而下和自下而上的设计方法
业务架构问题之什么是自上而下和自下而上的设计方法
234 18
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
55 0
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
52 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等