Seite 1 von 1

Borg Entwurfsmuster

Verfasst: Sonntag 22. April 2007, 19:06
von Twilo
Hallo,

Code: Alles auswählen

class Borg(object):
    _shared = {}

    def __new__(cls,*args,**kwargs):
        inst = object.__new__(cls)
        inst.__dict__ = cls._shared
        return inst
im Netz habe ich nur UML-Diagramme für das Singletin-Entwurfsmuster gefunden. Hat jemand ein Link, wo ich das UML-Diagramm für das Borg-Entwurfsmuster finde?

ps. gibt es ein Buch, wo die Entwurfsmuster anhand von Python erklärt werden?

mfg
Twilo

Verfasst: Sonntag 22. April 2007, 20:06
von BlackJack
Zeichne Dir doch einfach das UML-Diagramm für so ein Borg-Objekt. Sieht letztendlich, je nachdem wie weit man ins Detail gehen will, genauso aus wie ein Singleton.

Ein Buch oder eine Webseite zum Thema speziell mit Python ist mir nicht bekannt. Mit UML kann man übrigens in dynamischen Sprachen Probleme bekommen, weil UML auf statische Sprachen zugeschnitten ist.

Verfasst: Sonntag 22. April 2007, 20:19
von Twilo
Hallo,

meinst du mit dynamisch die Datentypen?

Ich absolviere gerade eien Umschulung zum Fachinformatiker Anwendungsentwicklung, mein Abschlussprojekt ist ein Plugin für eine Software.

Vom Auftraggeber sind UML-Klassendiagramme gewünscht. Im Moment weiss ich noch nicht, wie ich z.B. unterschiedliche Datentypen bei ein Rückgabewert zeichnen kann/soll. :?

mfg
Twilo

Verfasst: Sonntag 22. April 2007, 20:40
von BlackJack
Zum einen betrifft das die Datentypen, die ja nicht fest sein müssen, Stichwort "duck typing" und zum anderen ist in UML nicht vorgesehen, dass man Objekten zur Laufzeit Attribute hinzufügen oder wegnehmen kann. Wobei Methoden auch nur Attribute sind, die man aufrufen kann. Von der Möglichkeit zur Laufzeit neue Klassen zu erzeugen mal ganz abgesehen.

Rückgabewerte bzw. deren Typen zeichnet man doch nicht, sondern gibt sie in der Methodensignatur an. Da würde ich entweder den konkreten Typ hinschreiben oder einen "informellen" Typ wie "iterable over <anderer typ>", je nach Situation.

Module kann man übrigens am sinnvollsten auch auf Klassen abbilden. Man kann sie als Singletons ansehen.

Verfasst: Sonntag 22. April 2007, 21:03
von mitsuhiko
Ui. Buzzwords 8)

Verfasst: Montag 23. April 2007, 17:15
von Twilo
Hallo,
blackbird hat geschrieben:Ui. Buzzwords 8)
was meinst du damit?

@BlackJack
danke für die Erklärung

mfg
Twilo