Могут ли Mixins взаимодействовать с классом, используя его в DynamicProxy? - PullRequest
1 голос
/ 11 ноября 2011

Является ли использование перехватчиков единственным способом для миксина взаимодействовать с вызывающим классом другими миксинами?

Я собираюсь сделать что-то похожее на приведенное ниже.

PsuedoCode

class speak
  void Greet()
  {  Console.WriteLine("Greetings! My Name is " + self.firstname); }

class person
  string firstname;

SpeakingPersonProxy = MixIn(person,speak);

SpeakingPersonProxy.firstname = "Noneya"
SpeakingPersonProxy.Greet()  //produces Greetings! My name is Noneya

self.firstname (или что-то в этом роде) будет как-то указывать на класс с помощью greet, вместо этогоговорящего класса.В Ruby есть похожая концепция, которая имеет смысл для динамического языка.Интересно, как этого добиться в DynamicProxy.

1 Ответ

0 голосов
/ 12 ноября 2011

Ничего не встроено, но что вас останавливает:

SpeakingPersonProxy = MixIn(person,speak);
speak.Person = person;

Другими словами, если speak hsa знать о своей цели, будьте явными.

...