Mixins 可以在 DynamicProxy 中使用它与类交互吗?

发布于 2024-12-15 03:59:06 字数 508 浏览 2 评论 0原文

使用拦截器是 mixin 与调用类其他 mixin 交互的唯一方法吗?

我想做如下的事情。

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的类,而不是speak类。 Ruby 有类似的概念,这对于动态语言来说是有意义的。想知道如何在 DynamicProxy 中实现这一点。

Is using Interceptors the only way for a mixin to interact with the calling class other mixins?

I'm looking to do something like below.

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(or something like it) would somehow point to class using greet, instead of the speak class. Ruby has a similar concept, which makes sense for a dynamic language. Was wondering how to achieve this in DynamicProxy.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

病女 2024-12-22 03:59:07

没有任何内置的东西,但是是什么阻止了你:

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

所以换句话说,如果speak hsa要了解它的目标,那就要明确。

There's nothing built in, but what's stopping you from:

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

so in other words, if the speak hsa to know about its target, be explicit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文