duk*_*ing 2 grails groovy grails-orm
所以我想创建3个插件,其中包括域类和一个宁静的服务,以及每个插件彼此构建的人.
从概念上讲,他们会以这种方式"继承"基础模型:
记录>人>用户
但是,我从"友好手册"中读到,继承可能会导致一些性能问题.
然后我突然想到,既然Groovy具有水平重用功能(即特征),我可以很好地定义特征中的所有内容,然后在域类中实现特征.
由于字段的重命名,以及IDE自动完成的便利性的丧失,编写域类不是我的选择.
我的两个问题是:
Trait源代码应该在
例如: src/main/groovy/com/my/package/foo.groovy
您将遇到的主要问题是您将失去执行多态查询的能力.例如,通过继承,您可以执行以下操作:
def everything = Record.list()
Run Code Online (Sandbox Code Playgroud)
并且everything将包含Record,Person以及User实例.有点像SQL联合查询.使用Traits而不是继承时,你会失去这种能力.