In Grafik 9 sieht man das Objektmodell der
Bank Extension.
Grafik 9: Objektmodell der Bank Extension (Quelle:
Präsentation von Prof. Dr. Schmauch)
CExtCorbaObject ist eine abstrakte Klasse, die sowohl
bei der Methode der Delegierung als auch bei der Vererbung als
Basisklasse dienen kann. Es enthält einen Verweis auf das
Manager Objekt (in m_Module), da dies für jede
Extension Klasse erforderlich ist.
CExtCorbaDelegateObject ist eine abstrakte Klasse, die
die Delegierung der Aufrufe an das CORBA Proxy Objekt und die
externalize() Methode implementiert. externalize()
wird benötigt, da ein Extension Objekt nach Ablauf
eines AppLogic ggf. in der Session gespeichert und hierzu in eine
Zeichenkette umgewandelt wird.
CBank und CAccount sind Unterklassen von
CExtCorbaDelegateObjekt und implementieren die Methoden des
CORBA Proxy Objekts durch Delegierung, z.B. newAccount(.)
von CBank ruft newAccount am account Proxy auf.
Außer dem wird hier die internalize(.) Methode
implementiert, die ein Extension Objekt aus einer
Zeichenkette (z.B. aus der Session kommend) wiederherstellt.
bank und account sind die CORBA Proxies, die von
Corba.BaseObjekt abgeleitet sind.
Die Konstruktion um CBankManager ist für das
Funktionieren des Session Speichers erforderlich:
CBankManager verweist auf ein CorbaExtensionStorage
Objekt und das CorbaExtensionSession Objekt verweist auf
den CBankManager.