Es scheint ziemlich klar zu sein, dass "Prinzip der einheitlichen Verantwortung" nicht "nur eine Sache" bedeutet. Dafür sind Methoden da. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin sagt, dass "Klassen nur einen Grund haben …
Die Idee, mehrere Vererbungen in einer Sprache zu unterstützen, hat mir immer gefallen. Meistens wird jedoch absichtlich darauf verzichtet, und der vermeintliche "Ersatz" sind Schnittstellen. Interfaces decken einfach nicht den gleichen Grund ab, den Mehrfachvererbung hat, und diese Einschränkung kann gelegentlich zu mehr Boilerplate-Code führen. Der einzige Grund, den ich …
Ich schreibe Klassen, die "auf eine bestimmte Art und Weise verwendet werden müssen" (ich denke, alle Klassen müssen ...). Zum Beispiel erstelle ich die fooManagerKlasse, für die ein Aufruf erforderlich ist, zum Beispiel Initialize(string,string). Und um das Beispiel ein wenig voranzutreiben, wäre die Klasse nutzlos, wenn wir nicht auf ihre …
In meinem Programmdesign komme ich oft an den Punkt, an dem ich Objektinstanzen durch mehrere Klassen führen muss. Zum Beispiel, wenn ich einen Controller habe, der eine Audiodatei lädt und sie dann an einen Player weitergibt, und der Player sie an den playerRunnable weitergibt, der sie wieder an eine andere …
Ich stoße oft auf dieses Problem, besonders in Java, auch wenn ich denke, dass es sich um ein allgemeines OOP-Problem handelt. Das heißt: Das Auslösen einer Ausnahme zeigt ein Konstruktionsproblem auf. Angenommen, ich habe eine Klasse mit einem String nameFeld und einem String surnameFeld. In diesen Feldern wird dann der …
In einem meiner letzten Projekte habe ich eine Klasse mit dem folgenden Header definiert: public class Node extends ArrayList<Node> { ... } Nach einer Diskussion mit meinem CS-Professor stellte er jedoch fest, dass die Klasse sowohl für das Gedächtnis "schrecklich" als auch für die "schlechte Praxis" sei. Ich habe nicht …
Angenommen, innerhalb des privaten Teils einer Klasse gibt es einen Wert, der von mehreren privaten Methoden verwendet wird. Ziehen es die Leute vor, diese Variable als Member-Variable für die Klasse zu definieren oder als Argument an jede der Methoden zu übergeben - und warum? Einerseits konnte ich ein Argument dafür …
Betrachten Sie das folgende Design public class Person { public virtual string Name { get; } public Person (string name) { this.Name = name; } } public class Karl : Person { public override string Name { get { return "Karl"; } } } public class John : Person { …
Bei dieser Frage geht es darum, ob eine verschachtelte Klasse in Java eine statische verschachtelte Klasse oder eine innere verschachtelte Klasse sein soll. Ich habe hier und auf Stack Overflow gesucht, konnte aber keine wirklichen Fragen zu den Auswirkungen dieser Entscheidung auf das Design finden. Die Fragen, die ich gefunden …
Sagen wir, ich habe eine CarKlasse: public class Car { public string Engine { get; set; } public string Seat { get; set; } public string Tires { get; set; } } Nehmen wir an, wir erstellen ein System für einen Parkplatz. Ich werde einen Großteil der CarKlasse verwenden, also …
Mit der objektorientierten Programmierung können wir eine Klasse innerhalb einer Klasse (einer verschachtelten Klasse) erstellen, aber ich habe in meinen 4 Jahren Erfahrung im Codieren noch nie eine verschachtelte Klasse erstellt. Wofür eignen sich verschachtelte Klassen? Ich weiß, dass eine Klasse als privat markiert werden kann, wenn sie verschachtelt ist, …
Ich implementiere eine DelegateCommand, und als ich den oder die Konstruktoren implementieren wollte, hatte ich die folgenden zwei Entwurfsoptionen: 1: Mehrere überladene Konstruktoren public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute = canExecute; } 2: Nur einen Konstruktor mit …
Angenommen, aus irgendeinem Grund werden alle Objekte auf diese Weise erstellt: $ obj = CLASS :: getInstance (). Dann injizieren wir Abhängigkeiten mit Setzern und starten die Initialisierung mit $ obj-> initInstance (); Gibt es echte Probleme oder Situationen, die nicht gelöst werden können, wenn wir überhaupt keine Konstruktoren verwenden? …
Sollte eine Klasse etwas über ihre Unterklassen wissen? Sollte eine Klasse beispielsweise etwas tun, das für eine bestimmte Unterklasse spezifisch ist? Mein Instinkt sagt mir, dass dies ein schlechtes Design ist, es scheint eine Art Anti-Muster zu sein.
Hier ist eine C ++ - Klasse, die mit drei Werten erstellt wird. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Alle Parametertypen sind unterschiedlich. Ich könnte den Konstruktor überladen, damit die Reihenfolge keine Rolle spielt. class Foo{ //Constructors Foo(std::string, char, int); Foo(std::string, int, …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.