Sự khác nhau giữa các phép biến đổi @Delegate và @Mixin AST trong Groovy là gì.Sự khác biệt giữa các phép biến đổi @Delegate và @Mixin AST trong Groovy
Có lẽ câu hỏi của tôi phải làm với OO và khi áp dụng các mẫu khác nhau, nhưng tôi sử dụng cả hai và tôi có thể đạt được hành vi tương tự.
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"