递归火山软件开发平台

标题: 大家看看这样合理吗? [打印本页]

作者: urenai    时间: 2025-3-24 14:47
标题: 大家看看这样合理吗?
举个例子:

  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 类 C
  3. {
  4.     变量 B <类型 = B>

  5.     方法 实际使用处
  6.     {
  7.         B.a方法 ()

  8.         // 下面是实际效果;
  9.         // B.B方法_前初始化或清理 ()
  10.         // B.a方法 ()
  11.         // B.B方法_后初始化或清理 ()

  12.     }

  13.     #
  14. }

  15. 类 B <基础类 = A>
  16. {
  17.     方法 B方法_前初始化或清理 <公开 @视窗.跟随方法前 = "a方法">
  18.     {

  19.     }

  20.     方法 B方法_后初始化或清理 <公开 @视窗.跟随方法后 = "a方法">
  21.     {

  22.     }

  23.     #
  24. }

  25. 类 A <公开>
  26. {
  27.     方法 a方法 <公开>
  28.     {

  29.     }

  30.     #
  31. }
复制代码



(, 下载次数: 13)
(, 下载次数: 12)

作者: urenai    时间: 2025-3-25 10:46
@飞扬工作室 @创世魂

作者: 龙纹    时间: 2025-3-25 13:12
这种需求只用C++就足够,我之前封装过一个库,其中就有AOP的实现代码,而且在火山中正常使用,例子在这里:核心用户区某个问题的解决方案。使用也简单,不过缺点是实现代码晦涩难懂,想要修改有一定难度。

作者: urenai    时间: 2025-3-25 14:26
龙纹 发表于 2025-3-25 13:12
这种需求只用C++就足够,我之前封装过一个库,其中就有AOP的实现代码,而且在火山中正常使用,例子在这里: ...

对,就是这个意思。


作者: urenai    时间: 2025-3-25 21:47
本帖最后由 urenai 于 2025-3-25 21:53 编辑
龙纹 发表于 2025-3-25 13:12
这种需求只用C++就足够,我之前封装过一个库,其中就有AOP的实现代码,而且在火山中正常使用,例子在这里: ...

龙总你说有没有一种可能:

前置 和 后置 依附函数,可以继承 参数
即:无参 不继承
       有参     继承

也就是说   

a方法(有参)
继承:b方法前(参数变量类型相同)
不继承:b方法前(无参)

作者: 龙纹    时间: 7 天前
AOP的优点就是将核心逻辑和非核心逻辑分离,使我们可以专注于核心逻辑,方便代码编写和维护。
至于其他的一些公共行为,就是非核心逻辑。比如业务流程就少不了日志和权限验证,可以把这两个公共行为"横切"出来,也就是"切面"。
但是切面的数量不是固定的,而是可以*自*由组合,某个方法你可能需要一个权限验证,这需要参数,而计时的切面显然不需要任何参数。考虑到AOP代码的实际编写,想要兼容两者,只能在所有的方法中都传递参数。
在前面提到的C++代码实现中,每个切面的before、after方法参数都相同,就是这个原因。
你说的无参函数,你不使用这些参数就是了...
作者: urenai    时间: 7 天前
很强
作者: urenai    时间: 6 天前
@飞扬工作室

说句话啊,能不能给实现啊




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4