Was ist ein Orchestrator?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Minits
Beiträge: 30
Registriert: So 30. Okt 2016, 21:13
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Was ist ein Orchestrator?

Beitrag von Minits »

Guten Abend,

das ist auch schon die Frage: Was ist ein Orchestrator und wofür braucht man ihn? Leider kann ich keine näheren Angaben zur Verwendung angeben, da ich eben nichts darüber weiß.
Unten füge ich einfach mal den Ausschnitt des betreffenden Codes an, den ich gerne verstehen möchte. Inwiefern dieser hilfreich ist, weiß ich leider nicht. Aber vielleicht
kann mir ja jemand eine allgemeine Erklärung von Orchestratoren geben, da ich leider nichts hilfreiches im Internet dazu gefunden habe.
PS: Es handelt sich hierbei um ein SpaceInvaders Spiel, genauer gesagt ist es der Deklarationsteil der Unit, in welcher die Gegner(Aliens) implementiert werden.
Danke im Voraus!

Code: Alles auswählen

unit Aliens;
 
interface
 
uses
  Controls, ExtCtrls, Classes, Settings, Missiles, Graphics,
  Windows, Explosions, GR32_Image, GR32;
 
type
  TAlienSpecie = (asAlpha, asBeta, asGamma);
  TAlienDirection = (adLeft, adRight);
 
  TAlienOrchestrator = class;
 
  TAlien = class
  private
    _Frame : Integer;
    _MissileOrchestrator : TMissileOrchestrator;
    _AlienOrchestrator : TAlienOrchestrator;
    _ExplosionOrchestrator : TExplosionOrchestrator;
    _Specie : TAlienSpecie;
    procedure FlipDirection;
    procedure Descend;
    procedure _SetSpecie(const Value: TAlienSpecie);
    function GetHeight: Integer;
    function GetWidth: Integer;
  protected
    procedure Paint;
  public
    Top : Integer;
    Left : Integer;
    Visible : Boolean;
    Owner : TBitmap32;
    GraphicContext : TBitmap32;
    Picture : TBitmap32;
 
    Direction : TAlienDirection;
    constructor Create(AOwner: TBitmap32);
    destructor Destroy; override;
    property Specie : TAlienSpecie read _Specie write _SetSpecie;
    property Width : Integer read GetWidth;
    property Height : Integer read GetHeight;
    procedure UpdateMotion;
    procedure ShootMissile;
    procedure Die;
  end;
 
  TAlienMap =  Array[1..11,1..5] of TAlien;
 
  TAlienOrchestrator = class
  private
    _ThresholdCount : Integer;
    _Map2D : TAlienMap;
    _MissileOrchestrator : TMissileOrchestrator;
    _ExplosionOrchestrator : TExplosionOrchestrator;
    _AccelerateX : Double;
    _AccelerateY : Double;
    _FlipFlop : Boolean;
    _Engine : TObject;
    function GetAlienCount: Integer;
    procedure _UpdateFlipFlop;
  public
    constructor Create(Engine : TObject);
    destructor Destroy; override;
 
    property Map2D : TAlienMap read _Map2D write _Map2D;
    property MissileOrchestrator : TMissileOrchestrator read _MissileOrchestrator write _MissileOrchestrator;
    property ExplosionOrchestrator : TExplosionOrchestrator read _ExplosionOrchestrator write _ExplosionOrchestrator;
    procedure Accelerate;
    procedure Init(AOwner : TBitmap32);
    procedure Update;
    procedure Paint;
    procedure DetectAnomalies;
    property Count : Integer read GetAlienCount;
  end;

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Was ist ein Orchestrator?

Beitrag von Mathias »

Was ist ein Orchestrator und wofür braucht man ihn?
Ich denke mal, in dem Spiel ist dem Programmierer kein anderer Namen eingefallen.

Wen man in Google nach Orchestrator sucht, und dann Bilder betrachtet, sieht das nach eine Vernetzung aus.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Minits
Beiträge: 30
Registriert: So 30. Okt 2016, 21:13
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Was ist ein Orchestrator?

Beitrag von Minits »

Danke für die Antwort!

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Was ist ein Orchestrator?

Beitrag von MacWomble »

Ich verstehe unter Orchestrator so etwas wie eine Steuerzentrale für bestimmte Abläufe-
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Was ist ein Orchestrator?

Beitrag von Socke »

Es ist keines der bekannten Entwurfsmuster; als ehestes würde ich die Klassen als Vermittler/Mediator einordnen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Was ist ein Orchestrator?

Beitrag von pluto »

als ehestes würde ich die Klassen als Vermittler/Mediator einordnen.

Wenn man sich die zweite Klasse anschaut, könnte es schon eher hinkommt.
Wobei ich eher "Verwalter" sagen würde. Denn die Klasse "TAlienOrchestrator" verwaltet die "karte" in einem 2D Array.
Dann würden die anderen Klassen, die den Namen Orchestrator tragen auch einen gewissen Sinn ergeben. Wenn sie alle ähnlich aufgebaut sind.
MFG
Michael Springwald

Antworten