Borg Entwurfsmuster

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
Twilo
User
Beiträge: 109
Registriert: Mittwoch 10. Januar 2007, 19:17
Wohnort: Berlin
Kontaktdaten:

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
[url=http://www.farb-tabelle.de/][b]Farbtabelle[/b][/url]
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.
Twilo
User
Beiträge: 109
Registriert: Mittwoch 10. Januar 2007, 19:17
Wohnort: Berlin
Kontaktdaten:

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
[url=http://www.farb-tabelle.de/][b]Farbtabelle[/b][/url]
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.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Ui. Buzzwords 8)
TUFKAB – the user formerly known as blackbird
Twilo
User
Beiträge: 109
Registriert: Mittwoch 10. Januar 2007, 19:17
Wohnort: Berlin
Kontaktdaten:

Hallo,
blackbird hat geschrieben:Ui. Buzzwords 8)
was meinst du damit?

@BlackJack
danke für die Erklärung

mfg
Twilo
[url=http://www.farb-tabelle.de/][b]Farbtabelle[/b][/url]
Antworten