Laden...

Wie kann ich ein Objekt in mehreren Klassen nutzen?

Erstellt von BOB_BOB vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.715 Views
B
BOB_BOB Themenstarter:in
8 Beiträge seit 2018
vor 6 Jahren
Wie kann ich ein Objekt in mehreren Klassen nutzen?

Hallo,

ich habe folgendes Problem. Ich möchte seriell Daten von einem externen Gerät einlesen. Das ist soweit auch kein Problem. Nun habe ich mehrere Klassen in meinem Projekt. Gibt es die Möglichkeit das ich im ganzen Projekt nur ein Objekt erzeuge und es dann in allen anderen Klassen auch nutzen kann?
Code habe ich noch nicht weiter. Bin erst einmal bei der Planung des Programmes.

Gruß BOB

PS: Gibts hier irgendwo die Möglichkeit sich vorzustellen? Glaube das macht man so als Neuer.

D
985 Beiträge seit 2014
vor 6 Jahren

Gibt es die Möglichkeit ... Fragen können zu 99,99% immer mit Ja, gibt es! beantwortet werden und diese Frage zählt dazu.

Wenn du konkreter fragst, dann kann man auch konkreter antworten 😉

B
BOB_BOB Themenstarter:in
8 Beiträge seit 2018
vor 6 Jahren

Dann hoffe ich mal meine Frage gehört zu den 99,99%igen 😃

Wenn ich für meine serielle Verbindung nun mit einem Objekt in der Klasse A den ComPort öffne, dann kann ich ja in Klasse B ja nicht noch ein Objekt erzeugen und den ComPort öffnen.
Gibts nun irgendwie die Möglichkeit "Zentral" ein Objekt zu erzeugen und dann halt mit dem einen Objekt in allen Klassen zu arbeiten?

Gruß BOB_BOB

16.835 Beiträge seit 2008
vor 6 Jahren

Erneut eine Frage mit "gibt es.." und auch hier die Antwort: natürlich.

Mit entsprechenden Software Pattern kann man Objekte halten und diese anderen Instanzen zur Verfügung stellen.
Hier gibt es aber so viele verschiedene Lösungen, dass man das auch hier pauschal nicht sagen kann, was hier nun angebracht ist außer in der identischen Allgemeinheit zu antworten:

Halte die Referenz des Objekts und teile sie Klasse B mit.

Das sind aber mehr oder minder Basics der Objekt-orientierten Programmierung.
Im Endeffekt also: [FAQ] Wie finde ich den Einstieg in C#?

B
BOB_BOB Themenstarter:in
8 Beiträge seit 2018
vor 6 Jahren

Wie kann ich eine Referenz halten?

Sorry bin noch nicht so lange im Programmiergeschäft

D
985 Beiträge seit 2014
vor 6 Jahren

Hmmm,

vor dem Schreiben kommt das Lesen (von Dokumentationen oder hier im Forum die Antworten). Dieses Lesen sollte vollständig und mit der nötigen Ruhe erfolgen, sonst wird das nichts mit dem Programmieren.

Ich will damit sagen, dass deine Frage

Wie kann ich eine Referenz halten?

schon beantwortet wurde.

B
BOB_BOB Themenstarter:in
8 Beiträge seit 2018
vor 6 Jahren

Alles klar, ich bedanke mich für die weisen Worte der Allwissenden....

Btw: Es rennen da draußen nicht nur Idioten rum, aber manchmal ist das Problem für einen Neuling etwas komplexer wie für Jemand der das schon etliche Jahre macht.
Für meinen speziellen Fall habe ich leider keine Lösung in der gängigen Literatur gefunden, bzw. weiß nicht wonach ich suchen soll.

16.835 Beiträge seit 2008
vor 6 Jahren

Aber auch Du solltest Verständnis haben, dass wir das alles hier in unserer Freizeit unbezahlt machen.
Das bedeutet, dass i.d.R. keiner hier Lehrer spielen und Dich an der Hand führen kann. Das ist ganz ehrlich auch nicht die Aufgabe eines Forums.

Eigeninitiative Zeug zu lernen ist Teil des Entwickler-Daseins.
Erfahrung sammelt man kaum, wenn andere Leute einem das Zeugs vorkauen - is halt leider so.

Und Dir fehlen einfach die absoluten Basics.
Fang doch mal an, diese zu lernen...? Link hab ich Dir gegeben.

B
BOB_BOB Themenstarter:in
8 Beiträge seit 2018
vor 6 Jahren

Mir ist ja mein Problem nicht heute beim Mittag gekommen. Ich suche da schon ein paar Tage dran. Ich denke ein Forum ist dafür auch da um sein Wissen mit anderen zu teilen.

16.835 Beiträge seit 2008
vor 6 Jahren

Ich denke ein Forum ist dafür auch da um sein Wissen mit anderen zu teilen.

.. Kochshows auch.
Die erklären Dir aber auch nicht, wie man Wasser kocht; auch Kochshows gehen von einem gewissen Basiswissen aus wie man einen Wasserkocher bedient, einen Herd anschaltet und ein Messer hält.
Und wie eine Kochshow ein gewisses Grundverständnis voraussetzt, macht das ein Forum auch.

Wenn man mit einer Objekt-orientierten Sprache arbeitet, dann muss man zumindest die Basis-Dinge einer OOP-Sprache verstanden haben.
Ansonsten kann man das halt einfach knicken.

Und wie bereits gesagt ist Deine Frage so unfassbar allgemein gestellt, dass man gar nicht eine genaue Antwort geben kann.

B
BOB_BOB Themenstarter:in
8 Beiträge seit 2018
vor 6 Jahren

Vielen Dank an den User der anonym bleiben möchte und mir den Hinweis Singleton gegeben hat. Scheint wohl genau das zu sein was ich gesucht habe.

Gruß BOB_BOB

16.835 Beiträge seit 2008
vor 6 Jahren

Singletons sind in 99,9% der falsche Weg, da sie nur einen Workaround für eine völlig falsche Software-Architektur darstellen.
Unter anderem deswegen (und weil sich Singletons in Software Tests nur schwer bis gar nicht darstellen lassen) gehören sie auch zu den Anti-Pattern.

Singletons haben eigentlich nur in Dependency Injection Szenarien und Stateless Implementations eine Wirkung (und meiner persönlichen Meinung auch eine Berechtigung).
Für alle anderen Dinge - dazu fällt diese hier - sind sie einfach nur ein Dirty Hack.

Die ominöse Story des anonymen Users kommentiere ich mal nicht.

B
BOB_BOB Themenstarter:in
8 Beiträge seit 2018
vor 6 Jahren

Und was würde der Profi dann als Alternative empfehlen?

16.835 Beiträge seit 2008
vor 6 Jahren

Und wie bereits gesagt ist Deine Frage so unfassbar allgemein gestellt, dass man gar nicht eine genaue Antwort geben kann.

B
BOB_BOB Themenstarter:in
8 Beiträge seit 2018
vor 6 Jahren

Alles klar. Werde es mit Singleton umsetzen

5.658 Beiträge seit 2006
vor 6 Jahren

Und was würde der Profi dann als Alternative empfehlen?

Halte die Referenz des Objekts und teile sie Klasse B mit.

Das ist ja nicht so schwer zu verstehen. Wenn nicht: [FAQ] Wie finde ich den Einstieg in C#?

Ansonsten hilft dir dein Tonfall hier bestimmt auch nicht weiter.

Weeks of programming can save you hours of planning

N
54 Beiträge seit 2015
vor 6 Jahren

Hallo,
nun mische ich mich mal ein... Wenn du solche Antworten von dir gibst und nicht auf Rat anderer hörst, bist du hier falsch...

Dein Antworten anderen gegenüber sind sehr frech und undankbar. Dein Problem was du zu lösen versuchst ist relativ einfach - auch für ein neuling. Nur verstehst du die Antworten anderer nicht die dir die Lösung bereits gegeben haben.

Dieses Problem lässt sich mit den basics lösen... Lese dir diese durch und setzte sie durch. Dann bekommst du dein Problem auch gelöst.

Auch ich sage dir - lass singleton daraus. - lass es einfach. Wenn du mal weiter bist und Erfahrungen gesammelt hast, beschäftige dich mit dem Thema, dann kennst du auch dessen Aufgabe Gebiet.

Ich bin derzeit z.B. an mono dran, hier lerne ich quasi auch von Anfang. Ich könnte es mir auch leicht machen und 1zu1 die unterstützten Funktionen von C# nutzen. Da es aber Linux ist nutze ich die mono libs die wiederum andere Funktionen die spezifisch sind um Linux Inhalte zu nutzen. Bestes Beispiel Syscal.uname().

Einfachste Dinge müssen neu erlernt werden. Das bedeutet lesen, studieren und probieren!

So mehr vom Thema abgeschweift, ich hoffe aber das du weißt was ich dir sagen will.

Lieben Gruß