注入式开发(二):.NET 匿名函数
发布日期:2021-06-30 17:24:45
浏览次数:2
分类:技术文章
本文共 1327 字,大约阅读时间需要 4 分钟。
其实匿名函数就是个委托。只不过写起来更简洁。
为啥要用匿名函数呢?只是为了装逼吗?
诺诺诺
比如说,我们写代码,写着写着,发现有2个函数非常相像:
string methodA(string data){ 相同代码1。。。 methodA特有部分 相同代码2。。。}string methodB(string data){ 相同代码1。。。 methodB特有部分 相同代码2。。。}
不行,要重构。如果没有匿名函数,我们应该怎么重构呢?
重构方式一,将相同部分分拆出一个个独立的方法void same1(string data){ ...}void same2(string data){ ...}string methodA(string data){ same1(data); methodA特有部分 same2(data);}string methodB(string data){ same1(data); methodB特有部分 same2(data);}
重构方式二,写一个共用方法,然后在该方法里分情况处理原先A和B的特有部分:
string same(string data,string methodtype){ 相同代码1。。。 if(methodtype == "A") methodA特有部分 else methodB特有部分 相同代码2。。。}string methodA(string data){ return same(data,"A");}string methodB(string data){ return same(data,"B");}
重构方式一,多了2个方法;重构方式二,多了一个方法,然后原先的方法还多了一个参数。
下面用匿名函数进行重构
delegate string dlgMethod(string data);string same(string data,dlgMethod dlg){ 相同代码1。。。 //委托dlg处理每个method的特有部分 dlg(data); 相同代码2。。。}string methodA(string data){ return same(data,(data) => { methodA特有部分 });}string methodB(string data){ return same(data,(data) => { methodB特有部分 });}
这种方式,提炼出一个公用方法,然后原先的方法参数不变。更值得一提的是,特有部分在原先每个方法里自行定义,逻辑更加清晰。
我认为,匿名函数比较适合应用在 特殊部分 位于方法的中间位置这种情况,故而很难提炼出一个公用的方法,而不得不提炼出两个。匿名函数本质是一个委托,委托的作用就像一把尖刀插向敌人的胸膛:插进其他对象,插进其他方法。
因此,我将使用委托命名为:注入式开发。
转载地址:https://leftfist.blog.csdn.net/article/details/50484941 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月27日 21时19分05秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基础架构系列篇-系统centos7中docker安装分布式文件存储服务minio
2019-04-30
知识点记录-java判断系统是linux或windows
2019-04-30
知识点记录-springboot静态资源映射路径
2019-04-30
知识点记录-vue-cli+webpack打包运行图标显示异常
2019-04-30
知识点记录-springboot2.1集成rabbitmq
2019-04-30
微服务springcloud2系列篇-配置与注册nacos组件
2019-04-30
数据库系列篇mysql8-分库分表中间件mycat(WINDOWS环境)
2019-04-30
用户权限设计-基于RBAC模型
2019-04-30
微服务springcloud2系列篇-网关GATEWAY跨域问题
2019-04-30
Java并发以及多线程基础
2019-04-30
软件质量的8个特性
2019-04-30
应届渣渣前端的艰难求职之路
2019-04-30
2021年不可错过的17种JS优化技巧(一)
2019-04-30
2021年不可错过的17种JS优化技巧(二)
2019-04-30
月薪15~20k的前端面试问什么?
2019-04-30
一文学会使用Vue3
2019-04-30
我是如何看Vue源码的
2019-04-30