Instanzvariablen in der if-Bedingung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

helduel hat geschrieben:
Qubit hat geschrieben:Findest du?
'test()' nutzt die Methoden aus 'objmgr' um auf Daten aus 'objmgr()' zuzugreiffen ;-)
Ich steh wahrscheinlich nur auf dem Schlauch, aber ich verstehe das Beispiel nicht. Was bringt mir das?
Bei einfachen Applikationen wenig ;-)
Es geht darum, das Interface von den Daten und Daten von den Services zu trennen. 'test' ist eine Logikklasse, die auf "Services" von 'objmgr' zugreiffen soll und dabei die Daten in der singulären Instanz 'objmgr()' adressiert. Zwischen Logik ('test') und Services ('objmgr') für den Datenzugriff ('objmgr()') können hierbei unterschiedliche Interfaces zwischengeschaltet werden, die zB für die Logikklassen allesamt die gleiche Signatur haben, d.h. bei Änderung des "Services" müssen die Logikklassen nicht geändert werden. Die Interfaces bieten des weiteren verschiedene Pre- und Posttasks, zB zur Datenaufbereitung für In- / Outputmanagement, etc. Und um verschiedene Services auf den Daten zu implementieren, werden die Daten als Instanz adressiert. Wenn Daten, Services und Interfaces zusammenfallen, dann lässt sich auch alles in einer Klasse erledigen.

Code: Alles auswählen

class interface1_objmgr(objmgr):
    def setObj(self,key='',value=''):
        print "PREACTION1"
        self._set(key,value)
        print "POSTACTION1"

class interface2_objmgr(objmgr):
    def setObj(self,key='',value=''):
        print "PREACTION2"
        self._set(key,value)
        print "POSTACTION2"

class test2(interface1_objmgr):
    def __init__(self):
        self._objmgr__obj = objmgr()

i=test2()
i.setObj('info1',"hallo1")

class test2(interface2_objmgr):
    def __init__(self):
        self._objmgr__obj = objmgr()

i=test2()
i.setObj('info2',"hallo2")

class objmgr2(object):
    def _set(self,key='',value=''):
        setattr(self.__obj,key,{'owner':self,'value':value})

class interface3_objmgr(objmgr2):
    def setObj(self,key='',value=''):
        print "PREACTION3"
        self._set(key,value)
        print "POSTACTION3"        

class test3(interface3_objmgr):
    def __init__(self):
        self._objmgr2__obj = objmgr()

i=test3()
i.setObj('info3','hello3')
Antworten