【唠嗑第二嗑-代码里面的无为思想,空空如也的接口】
文章目录接口怎么是空的你当然知道为什么1.定义类型体系而非行为契约2.为差异化行为预留空间3.真正的实现在子接口中为什么我会惊讶圣人不妄为最近拜读了老子的《道德经》。很多时候觉得读懂了可转念一想又不是那么回事不知道是老子他老人家没有经历过咱普通人的柴米油盐酱醋茶还是作者觉悟低地下三层那么低但还是以自己浅薄之经验稍稍谈一下小感悟无为不是什么都不做而是不额外干预让事物遵循本身的规律运行。空接口不是没有代码而是不定义任何行为只做标识让框架按规则去处理。接口怎么是空的相信兄弟们在工作过程中多多少少都接触过Spring这位厉害至极的仁兄没有他哪有现在这么香的编程生活呀。那各位必然领教过这位仁兄最厉害的招式之一AOP。没见识过的请看下方packageorg.aopalliance.aop;publicinterfaceAdvice{}哇哦哇哦哇哦。无招胜有招你当然知道为什么兄弟你肯定说这有啥大惊小怪的不就是一个空接口吗 我都会写嘿嘿作者也会写1.定义类型体系而非行为契约这是一个顶级接口是用来定义类型体系而非行为契约。 我只是告诉你们我是什么至于我能做什么你看着办在 Spring 的类型世界里任何实现了 Advice接口的类都会被识别为“一种通知”。这为框架管理、收集和组织这些组件提供了基础。2.为差异化行为预留空间不同类型的通知前置、后置、环绕其执行逻辑和所需信息完全不同。一个 Before Advice需要在目标方法前运行它不关心返回值也不需要控制方法是否执行。一个 Around Advice则必须能控制目标方法的执行调用 ProceedingJoinPoint.proceed()并能处理返回值和异常。如果强行在 Advice接口中定义一个如 execute()的通用方法其签名将极其臃肿且难以适用于所有子类型。因此Spring 选择将具体行为的定义放到更特化的子接口中。3.真正的实现在子接口中顶层空接口Advice确立类型归属构建体系根基。中层功能接口MethodInterceptor, MethodBeforeAdvice定义具体的行为契约。底层实现类各种 Advice的实现包括注解解析生成的适配器提供具体实现。为什么我会惊讶我初读这些代码的时候其实只是佩服架构设计者的优雅 感叹Spring的强大和灵活但当我最近读到了这些三十辐共一毂当其无有车之用。埏埴以为器当其无有器之用。凿户牖以为室当其无有室之用。天地之间其犹橐籥乎虚而不屈动而愈出。道冲而用之或不盈谷神不死是谓玄牝。玄牝之门是谓天地根。无有相生的概念在我赖以生存的代码间回响。这一刻我有点能感受到那个老家伙的伟大和高明圣人不妄为不定义具体行为 无为只标识身份 给万物命名、分类天下就有序交给外部系统处理顺势而为我们同在一个世界也许连生活也相差不大可是他在微末之间尽得高山流水而我只有蝇营狗苟也许就是我们的AOP不一样吧他的前置是无他的后置是有。所以他得到了道。而作者的前置是房贷后置是家庭。所以得了一个活着就好。不过我们有一个共同的Interface那就是生命这可也是一个空空如也的顶级接口啊
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2459216.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!