![]() |
Re: lokale Variablen mit globaler Lebensdauer?
Zitat:
Zitat:
Meine Einwände gegen typ. Konstanten hatte ich IMHO begründet. Den Singleton stub hatte ich nur auf Dizzys Post geantwortet, da ich ihn a)falsch verstanden hatte und b) dachte es könnte vielleicht helfen. ;) Der OOP-Krieg wurde wohl erst losgetreten als jemand das Wort class darin entdeckt und sofort losgeschossen hat... So... nun lese ich mal die neueren Antworten... :) |
Re: lokale Variablen mit globaler Lebensdauer?
@Hagen: :mrgreen: na dann ist es okay ... hatte mich halt gewundert. Sorry, wenn's beim ersten Mal nicht exakt genug rüberkam. :stupid:
*sich-die-2-Cent-von-Nico-einsteck* Wenn ich das bei allen mache, die ihre 2 Cent irgendwo hinterlassen, bin ich bald reicher als Bill Gates. Ich mach mich mit Google erstmal auf die Suche nach weiteren Cents. Zur Not nehme ich auch US-Cent :mrgreen: |
Re: lokale Variablen mit globaler Lebensdauer?
Zitat:
Es gibt schon einige (oder viele) schöne Dinge. Ich stell mir das immer so vor, ich schreibe nicht allein sondern zu zweit, dritt, viert oder zu noch mehr an einem bestimmten Programm. Programmierer B hat mit Proceduren/Funktionen einen bestimmten Ablauf geschaffen. Ok schön. Ich verwend den jetzt schön brav, genauso wie ich seine globalen Variablen verwende. Jetzt geht besagter Programmierer her und stellt fest, hey das könnt ich so viel eleganter lösen und verwendet die Variable plötzlich ganz anders. Nach der Änderung, darf ich dann mal ne Weile grübeln bis ich feststelle, achso, jetzt muss ich die Variable auf dies oder jene Werte setzen, es gibt sie nicht mehr, es hat sich der Typ geändert oder was auch immer. Möglicherweise darf ich deshalb meinen kompletten Code umschreiben. Hätten sich in diesem Beispiel die Programmierer an OOP gehalten, Sichtbarkeiten von Variablen entsprechend eingeschränkt und sich an eine gegebene Schnittstelle gehalten, die nur noch erweitert werden darf, allerdings so dass sie rückwärtskompatibel ist, hätte ich deswegen keine einzige Zeile meines Codes ändern müssen. Naja das ist eine Sicht, gibt sicher noch andere. Ach ja, die PE Versionen sind von Borland ja absichtlich eingeschränkt, wollen ja wohl lieber Architect und wenn nicht die dann die Enterprise oder wenigstens die Professional Version verkaufen. Da läßt man dann schon mal en liebes/nettes Feature weg... |
Re: lokale Variablen mit globaler Lebensdauer?
@GuenterS:
Zitat:
- die Sichtbarkeit der Variablen beschränken kann ? - eine Schnittstelle immer OOP sein muß ? Umgekehrt wird ein Schuh draus: Man hat in der Geschichte der Programmiersprachen herausgefunden das das Black-Box Prinzip zu - definiterten Schnittstellen führt - modular programmiert werden muß - die Sichtbarkeit von Typen, Variablen und Objekten eingeschränkt werden muß Ergo stellt es sich exakt andersherum dar, durch das Nachdenken über bessere Schnittstellen, stärkere Restriktionen in der Sichtbarkeit von Variablen ist erst die OOP entstanden. @NicoDE: da stimme ich dir zu, das man solche "schlechten Eigenarten" nicht als den zu bevorzugenden Weg propagieren sollte. Denoch sollte jeder Entwickler über alle Möglichkeiten seiner Werkzeuge bescheid wissen, und eben nicht nur über OOP alleine. Und schlußendlich haben solche Infos, Methoden und Werkzeuge trotzdem nichts mit einem guten Programmierstil zu tun. Gruß hagen |
Re: lokale Variablen mit globaler Lebensdauer?
Zitat:
EDIT: negaH war schneller. :!: |
Re: lokale Variablen mit globaler Lebensdauer?
Einfach köstlich, diese Glaubenskriege ! :mrgreen: IMHO ist es so, daß es nur die gesunde Mischung macht. Man muß sich schon überlegen wozu man was braucht. negaH denkt wohl in dieselbe Richtung. Natürlich verwende ich globale Variablen, aber genau dosiert und möglichst wenig ! Und OOP ist die Würze. Ich erfinde das Rad nämlich nur einmal. Und unterschätzen würde ich das Ganze nicht. Um OOP sinnvoll nutzen zu können, gehört auch ein gehöriges Maß an Disziplin. Schließlich vererben sich auch die Fehler ! Trotzdem wären meine Programme ohne OOP schlechter zu warten. Das Ganze ist nämlich nur gut, sofern die Hierarchie der Objekte gut durchdacht ist.
|
Re: lokale Variablen mit globaler Lebensdauer?
Zitat:
Wenn Du mein vorheriges Posting bis zum Ende liest, wirst Du sehen, dass ich schon auch geschrieben habe, dass es sicher auch andere Sichten (Möglichkeiten) gibt. Mir _persönlich_ gefällt die Idee von OOP sehr gut. |
Re: lokale Variablen mit globaler Lebensdauer?
Was haltet Ihr denn von diesem Konstrukt?:
Delphi-Quellcode:
ausser diesem Zeug kommt NICHTS in die Unit und schon hasst Du eine Globale Variable, die nur der Funktion bekannt ist, ohne mit Compilerschaltern rumzufummeln. Und in diesem Fall ist wurscht, ob OOP oder nicht von ausserhalb der Unit sieht man nur die Funktion, nicht die Variable.
Unit Foo;
Interface Function Foo(_someParameters): ResultType; Implementation Var Bar: Integer=0; //hier die GloKale Variable Function Foo(_someParameters): ResultType; Begin Inc(Bar); //hier der Zugriff drauf DoSomething; End; End. Abgesehen davon kann man auch einen Kommentar Marke !!!!Do Not use this Variable it's for Function Foo!!! an die Variable dranschreiben. Dann sollten sich eigentlich alle dran halten und wenn nicht, ist klar, wer schuld ist. |
Re: lokale Variablen mit globaler Lebensdauer?
Zitat:
Was Du meinst, das ist eine Unit-globale Variable. Aber wie gesagt, es kommt auf den Einsatzzweck an und ich bleibe dabei : die Sichtbarkeit möglichst gering zu halten. 8) Das verhindert unerwünschte Quereffekte. |
Re: lokale Variablen mit globaler Lebensdauer?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz