Als «object-oriented-design» getaggte Fragen

Objektorientiertes Design ist der Prozess der Planung eines Systems interagierender Objekte zum Lösen eines Softwareproblems.

3
Ist es besser, Attribute in einer Klasse vorab zu initialisieren oder sie unterwegs hinzuzufügen?
Es tut mir leid, wenn dies eine ABSOLUT sophomorische Frage ist, aber ich bin gespannt, welche Best Practices es gibt, und ich kann bei Google anscheinend keine gute Antwort finden. In Python verwende ich normalerweise eine leere Klasse als Super-Catchall-Datenstrukturcontainer (ähnlich einer JSON-Datei) und füge unterwegs Attribute hinzu: class DataObj: …

2
Ist ein Domänendienst in DDD im Wesentlichen nur ein Fassaden- und / oder Vermittlungsmuster?
In Domain Driven Design kann die Domänenschicht mehrere (traditionelle) Dienste haben. Für die Benutzerdomäne haben wir beispielsweise Folgendes: Eine UserFactory, die Benutzerobjekte auf unterschiedliche Weise erstellt Ein UserRepository, das für die Interaktion mit den Persistenzdiensten in der Infrastrukturschicht verantwortlich ist Ist ein UserService in der Domänenschicht lediglich ein Vermittler und …

2
Python-Klassen mit nur einer Instanz: Wann wird eine (einzelne) Klasseninstanz erstellt und wann wird stattdessen mit der Klasse gearbeitet?
Bei einer Python-Klasse, die nur einmal instanziiert wird, gibt es nur ein Objekt der Klasse. Ich habe mich gefragt, in welchen Fällen es sinnvoll ist, eine einzelne Klasseninstanz zu erstellen, anstatt stattdessen direkt mit der Klasse zu arbeiten. Es gibt eine ähnliche Frage , aber sie hat einen anderen Schwerpunkt: …

5
Sollte ich in diesem Szenario Komposition oder Vererbung bevorzugen?
Betrachten Sie eine Schnittstelle: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Diese Schnittstelle wird von einer Reihe von Klassen implementiert, die Wellen unterschiedlicher Form erzeugen (z. B. SineWaveGeneratorund SquareWaveGenerator). Ich möchte eine Klasse implementieren, die SoundWavebasierend auf Musikdaten und nicht auf Rohtondaten generiert . Es würde den Namen …


4
Design in „gemischten“ Sprachen: objektorientiertes Design oder funktionale Programmierung?
In den letzten Jahren wurden die Sprachen, die ich gerne benutze, immer "funktionaler". Ich benutze jetzt Sprachen, die eine Art "Hybrid" sind: C #, F #, Scala. Ich entwerfe meine Anwendung gerne mit Klassen, die den Domänenobjekten entsprechen, und verwende Funktionsmerkmale, die das Codieren einfacher, übereinstimmender und sicherer machen (insbesondere …

9
FESTE vs. statische Methoden
Hier ist ein Problem, auf das ich häufig stoße: Es soll ein Webshop-Projekt mit einer Produktklasse geben. Ich möchte eine Funktion hinzufügen, mit der Benutzer Bewertungen zu einem Produkt veröffentlichen können. Ich habe also eine Review-Klasse, die auf ein Produkt verweist. Jetzt brauche ich eine Methode, die alle Bewertungen zu …


10
Was ist der Sinn von Eigenschaften?
Hier sind einige Argumente für Eigenschaften und meine Gegenargumente: Einfacher zu verwenden als Getter- und Setter-Methoden zu schreiben Getter- und Setter-Methodenpaare sind ein Codegeruch. Wenn Sie es einfacher machen, diese zu schreiben, ist es einfacher, einen Mathe-Test nicht zu bestehen, indem Sie ein Scantron-Formular verwenden und alle Cs ausfüllen. Objekte, …

2
Objektorientierte Spätbindung
In der Alan Kays Definition von objektorientiert gibt es diese Definition, die ich teilweise nicht verstehe: OOP bedeutet für mich nur Messaging, lokale Aufbewahrung und Schutz sowie das Verbergen von Staatsprozessen und extremes LateBinding aller Dinge. Aber was bedeutet "LateBinding"? Wie kann ich dies auf eine Sprache wie C # …


4
Klassenduplikationsmuster?
Ich arbeite derzeit als Solo-Entwickler an meinem aktuellen Projekt. Ich habe das Projekt von einem anderen Entwickler geerbt, der das Unternehmen inzwischen verlassen hat. Es ist eine Webanwendung im Model-View-Controller-Stil in C #. Es verwendet Entity Framework für die objektrelationale Zuordnung. Und es gibt zwei verschiedene Klassen für die Typen …

5
Bestes OOP-Entwurfsmuster für eine Abfolge von Operationen
Ich arbeite an einer Anwendung, deren Modul die folgenden Finanzoperationen nacheinander ausführt: Wenn ein Benutzer die Überweisung eines bestimmten Betrags auf sein Bankkonto anfordert: Überprüfen Sie, ob jetzt eine Transaktion stattfinden kann. (Transaktion kann nur während eines bestimmten Zeitraums durchgeführt werden) Überprüfen Sie, ob der Benutzer die Abhebung eines Mindestbetrags …


2
Gibt es eine elegante Möglichkeit, eindeutige Einschränkungen für Domänenobjektattribute zu überprüfen, ohne die Geschäftslogik in die Serviceschicht zu verschieben?
Ich passe das domänengetriebene Design seit ungefähr 8 Jahren an und selbst nach all den Jahren gibt es immer noch eine Sache, die mich nervt. Das heißt, es wird nach einem eindeutigen Datensatz im Datenspeicher für ein Domänenobjekt gesucht. Im September 2013 erwähnte Martin Fowler das TellDon'tAsk-Prinzip , das nach …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.