在不同的OOP语言中实现DCI (数据、上下文、交互)架构的可能设计是什么?我想到了C++的基于策略的设计(Andrei Alexandrescu),以及Java的DI和AOP。然而,我也考虑过使用状态设计模式来表示角色,并使用某种模板方法来进行交互……其他的可能性是什么?
发布于 2010-04-29 07:01:38
在Java中,如果没有字节码生成,我将使用Decorator模式作为上下文,但是我将不使用类来装饰接口,这将更加灵活。数据将通过实现接口的类来表示。交互将使用手动依赖注入到模板方法中。
发布于 2012-03-14 20:17:17
在大多数语言中,做纯DCI是很困难的,你通常会遇到以下两个问题之一。静态类型语言,如Java,通常以某种包装器解决方案结束,这会产生self schizofrenia问题。允许您在运行时随意附加新实例方法的动态语言经常受到作用域问题的影响。当对象不再扮演该角色时,RoleMethods仍然可用。
我所知道的最适合不同语言的
Ruby:为设计,因此完全支持使用
的对象生命周期相同
如果你看一下fullOO,你会发现有几种语言的例子。包括我自己的项目Marvin,这是一种专门为支持DCI而设计的语言。目前,Marvin的大部分语言都与C#相同,所以你可以说它是C#的扩展,而不是它自己的语言。
https://stackoverflow.com/questions/2578528
复制相似问题