| |
1-10 Abbildende Ada-Sprache, v1.2 Oktober 2001 1 1,10,2,2 Auszug gegen Beton Wieder von der CORBA-/iiopspezifikation "Wertarten können abstrakt auch sein. Sie werden abstrakt weil ein Auszug genannt Wertart kann möglicherweise nicht sein instantiated. Nur die konkreten Arten, die von ihnen abgeleitet werden, können sein wirklich instantiated und führte ein. Ihre Implementierung ist selbstverständlich ruhig lokal. Jedoch weil keine Zustandinformationen spezifiziert werden können (nur lokal Betriebe werden), abstrakte Wertarten sind nicht abhängig von dem einzelnen erlaubt Erbschaftbeschränkungen gesetzt nach konkreten Wertarten. Im Wesentlichen sind sie a Bündel Betriebsunterzeichnungen mit einer lediglich lokalen Implementierung. Diese Unterscheidung wird gebildet klar in den Sprachkartenaufnahmen für abstrakte Werte.", Der Ada, der für abstrakte Werte abbildet, unterscheidet sich nur etwas von dem für konkrete Werte: das Value_Impl.Object schreiben Sie und das umgebende Value_Impl Paket sind nicht erforderlich. Dieses verhindert Fall der abstrakten Art an verursacht werden. Merken Sie das Value_Ref Art und dazugehörige Betriebe sind nicht abstrakt. Dieses erlaubt Verbreitern einer konkreten Wertart zu einer Auszugswertart (zum Beispiel, zwecks überschreiten Sie als das tatsächliche für einen Formalparameter, der von der abstrakten Wertart ist). Dieses auch abbilden erlaubt, daß die Betriebe der abstrakten Wertart auf a hervorgerufen werden Hinweis erhalten auf diese Art. Zwecks das Verbreitern von den konkreten Wertarten stützen, die von übernehmen können abstrakte Wertart, das Helper Kindpaket enthält a To_Abstract_Value_Ref arbeiten Sie, das einen Hinweis auf irgendwie Beton verbreitert oder entziehen Sie Wert, der von ihm zu einem gültigen Hinweis der abstrakten Art übernimmt. Z.B. das folgende IDL: // IDL Modul CORBA { abstraktes valuetype CustomMarshal { leerer Marshal (im ostream DataOutputStream); leeres unmarshal (im istream DataInputStream); }; }; Diagramme: -- Ada - corba-custommarshal.ads mit CORBA.Value; mit CORBA.DataOutputStream; mit CORBA.DataInputStream; Paket CORBA.CustomMarshal ist Art Abstract_Value_Ref ist neues CORBA.Value.Base mit Nullaufzeichnung; Verfahrensmarshal (Selbst: Abstract_Value_Ref; |  |
|
| |
|
|