Als «constructors» getaggte Fragen

9
Warum sollte ich eine Factory-Klasse anstelle der direkten Objektkonstruktion verwenden?
Ich habe die Geschichte mehrerer C # - und Java-Klassenbibliotheksprojekte auf GitHub und CodePlex gesehen und sehe einen Trend zum Umstieg auf Factory-Klassen im Gegensatz zur direkten Objektinstanziierung. Warum sollte ich viele Factory-Klassen verwenden? Ich habe eine ziemlich gute Bibliothek, in der Objekte auf altmodische Weise erstellt werden - durch …


7
Ist die Verwendung von "new" im Konstruktor immer schlecht?
Ich habe gelesen, dass die Verwendung von "new" in einem Konstruktor (für andere Objekte als einfache Werte) eine schlechte Praxis ist, da dies das Testen von Einheiten unmöglich macht (da diese Mitbearbeiter ebenfalls erstellt werden müssen und nicht verspottet werden können). Da ich keine wirklichen Erfahrungen mit Unit-Tests habe, versuche …

9
Validierung von Konstruktorparametern in C # - Best Practices
Was ist die beste Vorgehensweise für die Validierung von Konstruktorparametern? Angenommen, ein einfaches Stück C #: public class MyClass { public MyClass(string text) { if (String.IsNullOrEmpty(text)) throw new ArgumentException("Text cannot be empty"); // continue with normal construction } } Wäre es akzeptabel, eine Ausnahme auszulösen? Die Alternative, auf die ich …

5
Soll ich C-Strukturen über einen Parameter oder über einen Rückgabewert initialisieren? [geschlossen]
Die Firma, bei der ich arbeite, initialisiert alle ihre Datenstrukturen durch eine Initialisierungsfunktion wie folgt: //the structure typedef struct{ int a,b,c; } Foo; //the initialize function InitializeFoo(Foo* const foo){ foo->a = x; //derived here based on other data foo->b = y; //derived here based on other data foo->c = z; …


3
Optionale Parameter oder überladene Konstruktoren
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 …

5
Warum wurde es nicht zu einem gängigen Muster, Setter im Konstruktor zu verwenden?
Accessoren und Modifikatoren (auch Setter und Getter genannt) sind aus drei Hauptgründen nützlich: Sie schränken den Zugriff auf die Variablen ein. Zum Beispiel kann auf eine Variable zugegriffen, aber nicht geändert werden. Sie validieren die Parameter. Sie können einige Nebenwirkungen verursachen. Universitäten, Online-Kurse, Tutorials, Blog-Artikel und Codebeispiele im Internet betonen …

4
Legitime "echte Arbeit" in einem Konstruktor?
Ich arbeite an einem Design, stoße aber immer wieder auf eine Straßensperre. Ich habe eine bestimmte Klasse (ModelDef), die im Wesentlichen der Eigentümer eines komplexen Knotenbaums ist, der durch Analysieren eines XML-Schemas (Think DOM) erstellt wurde. Ich möchte guten Konstruktionsprinzipien (SOLID) folgen und sicherstellen, dass das resultierende System leicht testbar …

5
Wie kann man einen Konstruktor zerlegen?
Nehmen wir an, ich habe eine Enemy-Klasse und der Konstruktor würde ungefähr so ​​aussehen: public Enemy(String name, float width, float height, Vector2 position, float speed, int maxHp, int attackDamage, int defense... etc.){} Das sieht schlecht aus, weil der Konstruktor so viele Parameter hat, aber wenn ich eine Enemy-Instanz erstelle, muss …


3
wie komplex ein Konstruktor sein sollte
Ich diskutiere mit meinem Kollegen darüber, wie viel Arbeit ein Konstrukteur leisten kann. Ich habe eine Klasse B, die intern ein anderes Objekt A erfordert. Objekt A ist eines von wenigen Mitgliedern, die Klasse B für ihre Arbeit benötigt. Alle öffentlichen Methoden hängen vom internen Objekt A ab. Informationen zu …
18 c#  constructors 

1
Ist es in Ordnung, einen Standardkonstruktor unbrauchbar zu machen?
Speziell nach dem Standardkonstruktor fragen Wenn der Konstruktor alle Daten für ein Objekt initialisiert und eine Klasse erstellt, die ohne ordnungsgemäße Initialisierung nicht verwendet werden kann, ist der Standardkonstruktor dann nicht nutzlos? Erwägen: // A class for handling lines in a CSV file class CSV_Entry { private: unsigned num_entries; std::string …


2
Unit Test zum Testen der Erstellung eines Domänenobjekts
Ich habe einen Unit Test, der so aussieht: [Test] public void Should_create_person() { Assert.DoesNotThrow(() => new Person(Guid.NewGuid(), new DateTime(1972, 01, 01)); } Ich behaupte, dass hier ein Personenobjekt erstellt wird, dh dass die Validierung nicht fehlschlägt. Wenn der Guid beispielsweise null ist oder das Geburtsdatum vor dem 01.01.1900 liegt, schlägt …

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.