Frage

Nicht sicher, ob der Titel erfaßt, was ich versuche, hier zu sagen.

Bei der Gestaltung in OO sollte ich meine Objekte sein Aufspaltung in ihre meisten spezifischen Bereichen auf - so, wenn ich ein Factory-Objekt haben die sich mit Objekten zu schaffen, sondern später stoße ich auf eine Art und Weise der Erzeugung von Objekten für einen anderen Zweck, obwohl sie können sein, die gleichen Objekte ist es wert, einen separaten fcatory oder fügen sie einfach auf das exsiting zu schaffen.

Meine größte Sorge ist, Sammelproben Klassen mit Tonnen von Material, oder Zerteilen Objekten und Verdünnen meiner Projekte in ein Meer von Klassen.

Jede Hilfe?

EDIT:

Ich denke, auf einer Seite beachten / Unterthema Teil von mir will die Granularität, um herauszufinden, in einem Programm verwendet werden soll. Art, wie tief Sie gehen sollten?

War es hilfreich?

Lösung

  

Meine größte Sorge ist, Sammelproben Klassen mit Tonnen von Material, oder   Splitting-Objekte und Verdünnen meiner   Projekte in ein Meer von Klassen

Dies ist ein sehr wichtiger Punkt und in jedem noch recht großen Projekt, extrem schwierig, ganz vorne vor alles zu bekommen, weil realistisch, Anforderungen mich im Laufe der Zeit entwickeln sich in den meisten Fällen. Dies ist, wo „Refactoring“ kommt in. Sie entwerfen auf, was Sie an jedem beliebigen Punkt kennen und versuchen, auch nicht zu viele Sprünge im Glauben zu machen, was Sie denken, das System entwickeln KANN.

Da Sie wissen, was Sie jetzt bauen, können Sie Ihre Klassen entwerfen versuchen, die bestmögliche Nutzung der OO-Konzepte zu machen - zB Verkapselung / Polymorphismus. Dies ist selbst, wie andere haben auch festgestellt, kann bekanntlich schwer zu erreichen sein, und das ist, wo die Erfahrung, sowohl in der OO-Systemen sowie die Kenntnis der Domain Gestaltung kann wirklich nützlich sein.

Entwurf basiert auf, was Sie wissen -> Build It -> Überprüfen sie -> Umgestalten es -> Re-Design -> und es geht weiter und weiter ..

Andere Tipps

Das Finden der richtigen Gliederungstiefe und Verantwortung ist es, was OOP macht Design so schwierig. Wir können Ihnen mit einem konkreten Fall helfen, aber nicht mit allem, was dem allgemeinen. Wenn es Algorithmen oder strenge Methoden der waren wie diese zu lösen, jeder könnte ein OOP-Designer sein.

Eine Daumenregel I wie für die Entscheidung, „ist dies jetzt zu groß zu bekommen?“ ist „kann ich den Zweck es kurz erklären?“ Wenn Sie mit beginnen Einsprüche und viele Weaselwörter einzuführen, um die Funktionen einer Komponente Ihres Designs zu erklären (sei es Klasse, Membervariable, Methode oder was auch immer), es könnte ein guter Indikator sein, dass es zu komplex ist und sollte möglichst aufgeteilt werden .

In Ihrem speziellen Fall, wenn Sie bereits ein Factory-Objekt haben dann das DRY-Prinzip (Do not Repeat Yourself) würde sagen, dass es eine schlechte Idee ist eine weitere Fabrik zu schaffen, die die gleiche Sache tut.

Ist das ein tatsächliches Problem, dass Sie konfrontiert? Oder nur eine Angst darüber, wie Sie den Code in Zukunft wachsen könnte?

Wenn Sie die gleiche Art von Objekt verwenden drastisch unterschiedliche Probleme zu lösen, dann müssen Sie die Klasse zu konzentrieren sich auf Trennung von Anliegen neu zu gestalten. Wenn Sie eine bestimmte Antwort benötigen, müssen Sie ein Beispiel für eine Art von Klasse schaffen, die diese Funktionalität benötigen würde.


  

Ich hätte die Dinge schlecht formuliert in   die Frage: Ich glaube, ich würde nicht wiederholen   selbst seine nur mehr ein Fall von   wo Sie den Code zu setzen, könnte es sein,   zu einer exsiting Fabrik fügte hinzu, dass   schafft Designobjekte für exporing   Daten in Excel-Tabellen. Auf der   Andererseits ich es sehen konnte, konnte auch   haben eine eigene Fabrik für den Import   Excel-Daten. Beide Fabriken würden   produziert die gleichen Objekte, sondern die inneren   Arbeiten sind völlig verschieden. -

Wenn Sie nicht tun, oder ein Plan für jede Klasse Abstraktion zu tun (Subklassen oder mit Hilfe von Schnittstellen) Sie nicht die Fabrik Muster müssen überhaupt benutzen. Die Fabrik Muster ist in der Regel am besten geeignet für Objekte eines Basisklassentyp liefert, oder dass eine bestimmte Schnittstelle implementieren.

  

Beide   Fabriken würden das gleiche produzieren   Objekte, aber das Innenleben ist   ganz anders aus.

Nicht sicher, ob ich habe Sie richtig verstanden habe, aber das klingt wie ein Kandidat für die Abstrakte Muster.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top