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

Borg Entwurfsmuster

Beitragvon Twilo » Sonntag 22. April 2007, 19:06

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
BlackJack

Beitragvon BlackJack » Sonntag 22. April 2007, 20:06

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:

Beitragvon Twilo » Sonntag 22. April 2007, 20:19

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
BlackJack

Beitragvon BlackJack » Sonntag 22. April 2007, 20:40

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.
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Sonntag 22. April 2007, 21:03

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:

Beitragvon Twilo » Montag 23. April 2007, 17:15

Hallo,

blackbird hat geschrieben:Ui. Buzzwords 8)

was meinst du damit?

@BlackJack
danke für die Erklärung

mfg
Twilo

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], kbr, noisefloor