|
|
Probleme mit vererbten Singleton - Konstruktor???, Access??? |
|
joekey |
Forum-Century
|
|
Beiträge: 169
|
|
|
|
Anmeldedatum: 03.04.08
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: 2011b
|
|
|
|
|
|
Verfasst am: 26.07.2009, 11:04
Titel: Probleme mit vererbten Singleton - Konstruktor???, Access???
|
|
|
|
|
Hallo,
ich habe folgende Situation:
Ich habe eine Reihe an Klassen (siehe code: cClass1.m, cClass2.m ...) die ich als Singleton implementieren will.
Da der code für Singleton immer gleich ist, und es ändert sich schließlich nur der aufrufende Konstruktor, macht es
meiner Meinung nach Sinn, diesen Code in eine separate Klasse auszulagern (siehe code: cSingleton.m) und anschließend
von den einzelnen Subklassen erben lassen.
Code cClass1
Code cSingleton
Meine Fragen:
Wie könnte ich es Anstellen dass ich in der statischen Methode "get" die aufrufende Klasse kenne? Damit ich
den Konstruktor korrekt setzten kann. Das Problem ist eben die statische Methode die die aufrufende Klasse nicht kennt
und sie ist zudem notwendig für den Singleton Pattern.
Damit im Zusammenhang steht auch das zweite Problem: wenn ich in der Klasse cClass1 den zugriff auf Konstruktor auf
PRIVATE setze (laut Singleton Pattern) kann darauf die statische Methode nicht zugreifen.
Ist die Architektur nicht ganz korrekt? oder sollte ich die Singleton in jeder cClass separat implementieren? Somit
hätte sich der code aber wiederhollt!
Danke für die Hinweise und anregungen
LG joe
|
|
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.08.2009, 13:40
Titel:
|
|
Hallo,
das kann so nicht funktionieren: die persistente Variable myobj gibt es nur einmal (nicht einmal pro Klasse!). So ein Problem generell anzupacken: man fügt eine abstrakte Methode createObj hinzu, die dann von jeder abgeleiteten Klasse implementiert werden müsste.
Normalerweise rate ich ja ab, Code einfach zu kopieren, auf der anderen Seite, hier würde ich es empfehlen, vorausgesetzt, es gibt nicht hunderte von Singletons (und wenn ja, stellt sich sowieso die Frage, ob das wirklich Sinn macht ...)
Titus
|
|
|
joekey |
Themenstarter
Forum-Century
|
|
Beiträge: 169
|
|
|
|
Anmeldedatum: 03.04.08
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: 2011b
|
|
|
|
|
|
Verfasst am: 28.08.2009, 12:06
Titel:
|
|
Hallo Titus,
danke für deine Antwort. Ich habe es mit dem Kopieren des codes gelösst.
LG joe
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|