gpt4 book ai didi

oop - DCI 架构有哪些可能的设计?

转载 作者:行者123 更新时间:2023-12-04 21:34:20 31 4
gpt4 key购买 nike

用不同的 OOP 语言实现 DCI(数据、上下文、交互)架构的可能设计是什么?我想到了 C++ 的基于策略的设计 (Andrei Alexandrescu),Java 的 DI 和 AOP。但是,我也考虑过使用状态设计模式来表示角色和某种模板方法来进行交互......还有哪些其他可能性?

最佳答案

在大多数语言中执行纯 DCI 很困难,您通常会遇到两个问题之一。像 Java 这样的静态类型语言通常会以某种包装解决方案结束,它会创建 self schizofrenia。问题。允许您在运行时随意附加新实例方法的动态语言通常会遇到范围问题。当对象不再扮演角色时,RoleMethods 仍然可用。

我所知道的最适合不同语言

  • Marvin:为 DCI 设计,因此得到全面支持
  • Ruby 使用栗色。如果您使用 maroon gem (或类似的)然后在 Ruby 中完全支持 DCI。
  • java :Qi4J
  • C# 扩展方法(范围问题和重载问题)可能与动态一起使用。我有一个基于 Clay 的实现,但这会产生身份问题
  • Native Ruby:方法注入(inject)范围问题,当对象不再扮演角色时,方法可用
  • C++:模板。范围问题方法生命周期与对象生命周期相同

  • 如果你看看 fullOO您会找到几种语言的示例。包括在我自己的项目 Marvin 中,这是一种专门为支持 DCI 而设计的语言。目前大部分 Marvin 与 C# 相同,因此您可以说它是 C# 的扩展,而不是它自己的语言。

    关于oop - DCI 架构有哪些可能的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2578528/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com