14
Groovy中@Delegate和@Mixin AST转换之间的区别。Groovy中@Delegate和@Mixin AST转换之间的区别
也许我的问题与OO有关,当应用不同的模式时,但我使用两者,我可以实现相同的行为。
class Person {
String name = "Clark"
def walk() { "Walk" }
}
@Mixin(Person)
class Superhero {
def fly() { "Fly" }
}
def superman = new Superhero()
assert superman.name == "Clark"
assert superman.walk() == "Walk"
assert superman.fly() == "Fly"
class Person {
String name = "Clark"
def walk() { "Walk" }
}
class Superhero {
@Delegate Person person
def fly() { "Fly" }
}
def superman = new Superhero(person: new Person())
assert superman.name == "Clark"
assert superman.walk() == "Walk"
assert superman.fly() == "Fly"