QI4J替代品
回答
Qi4j同时提供面向复合的编程(使用Mixins)**和**面向DDD的框架。 Indriagen是一个死的项目。 javate提供了一个面向DDD的完整堆栈,但没有COP。 learn-ddd只是一个面向DDD的示例应用程序。拉链框架仅以面向DDD的方式提供配置和服务定位器,其发展似乎已经展开。 – eskatos 2012-09-06 12:11:38
最明显的类似的事情Qi4j,我想,是斯卡拉。然而,这是一种新的语言,伴随着所有的好事和坏事。对于Qi4j,我们的目标是提供强大的Scala支持,例如Scala特征可用于Qi4j复合材料。
我认为你可以使用AspectJ ITD(语言不是@AspectJ Java选择)来完成大部分Qi4j的工作(并且更方便)。
Jordao mentions it in his answer to the similar post提到@Ischin。
下面是我在另一篇文章中提到的特征类功能的示例:https://stackoverflow.com/a/7403617/318174。只需添加一个接口到一个类,你可以奇迹般地添加方法。
当然,但请记住,AspectJ强迫你使用他们的工具链,并且你不能用普通的JDK来使用它。这意味着您需要调整构建并使用支持AspectJ的IDE。一旦编译完成,基于AspectJ的代码就可以在任何JRE上运行。 Qi4j没有这个缺点。 – eskatos 2012-09-10 09:41:43
在我看来,Qi4J有更多的缺点,因为你和图书馆紧密相连。 AspectJ并非如此,并且可以很好地处理Spring或JPA等任何框架。此外,使用AspectJ,您现在可以重构eclipse(或者我认为Maven)来进行内联代码编织。那就是你可以告诉AspectJ修改你的代码。也就是说,如果您希望将来可以删除AspectJ依赖项。 AspectJ对您的体系结构方法论(不论其明确的面向对象或面向组件,功能(行为和状态的分离))都是不可知的。 Qi4j不是。 – 2012-09-10 10:38:32
您可以编写Qi4j不可知的代码并使用Qi4j汇编代码编写它。此外,Qi4j提供的不仅仅是组合和AOP构造:面向DDD的框架,库,扩展和开发工具。面向复合的编程是Qi4j的核心,但它的范围超出了这个范围。 – eskatos 2012-09-10 11:42:06
- 1. PRISM替代品
- 2. Nabaztag替代品?
- 3. Sharepoint替代品?
- 4. OPENDATASOURCE替代品
- 5. window.opener替代品
- 6. JML替代品
- 7. XAML替代品
- 8. NAnt替代品
- 9. Kibana替代品
- 10. @“”的替代品?
- 11. ASIHTTP的最佳替代品,替代品或替代品用于下载队列
- 12. eval()的替代品
- 13. SRSPlus的替代品?
- 14. SharePoint的替代品?
- 15. 替代品删除?
- 16. NHIbernate的替代品?
- 17. KeyboardAvoidingView或替代品
- 18. Essbase的替代品
- 19. CKAN的替代品
- 20. Flash的替代品?
- 21. Portlets的替代品
- 22. java.util.concurrent.ConcurrentSkipListSet的替代品
- 23. 寻呼替代品
- 24. SwaggerHub的替代品
- 25. YQL的替代品
- 26. QC的替代品
- 27. GWT Acegi替代品
- 28. WebSockets的替代品
- 29. Atlas280 IDE替代品
- 30. setInterval的替代品?
看看** [这个答案](http://stackoverflow.com/questions/2287624/java-multiple-class-compositing-and-boiler-plate-reduction/2287732#2287732)** – lschin 2011-05-20 07:51:08