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