In Ruby, was ist das Äquivalent zu einer Schnittstelle in C #?

Ich versuche gerade, Ruby zu lernen, und ich versuche, mehr darüber zu verstehen, was es in Bezug auf Verkapselung und Verträge bietet.

In C # kann ein Vertrag über eine Schnittstelle definiert werden. Eine Klasse, die die Schnittstelle implementiert, muss die Bedingungen im Vertrag erfüllen, indem sie eine Implementierung für jede definierte Methode und Eigenschaft (und möglicherweise für andere Dinge) bereitstellt. Die einzelne Klasse, die eine Schnittstelle implementiert, kann im Rahmen der im Vertrag definierten Methoden alle erforderlichen Aktionen ausführen, sofern sie dieselben Argumenttypen akzeptiert und denselben Ergebnistyp zurückgibt.

Gibt es eine Möglichkeit, diese Art von Dingen in Ruby durchzusetzen?

Vielen Dan

Ein einfaches Beispiel für das, was ich in C # meine:

interface IConsole
{
    int MaxControllers {get;}
    void PlayGame(IGame game);
}

class Xbox360 : IConsole
{
   public int MaxControllers
   {
      get { return 4; }
   }

   public void PlayGame(IGame game)
   {
       InsertDisc(game);
       NavigateToMenuItem();
       Click();
   }
}

class NES : IConsole
{
    public int MaxControllers
    {
        get { return 2; }
    }

   public void PlayGame(IGame game)
   {
       InsertCartridge(game);
       TurnOn();
   }
}

Antworten auf die Frage(12)

Ihre Antwort auf die Frage