Frage

Was ist die wichtigsten Merkmale ein IOC-Container enthalten sollte? Sie können ganz einfach Container in 15 Zeilen Code , aber was soll es enthalten "nützlich" in einem Projekt zu sein?

War es hilfreich?

Lösung

Das ist ein ziemlich weit offen Thema, und zu viel Subjektivität gegeben, aber ich werde von einem sehr pragmatischer Sicht versuchen und beantworten. In Anbetracht der Projekte, die ich gearbeitet haben, und meine Erfahrung mit IoC, würde ich sagen, dass es mindestens drei biggies suchen in Bezug auf Nützlichkeit.

  1. Konfiguration - Jeder IoC, die Sie Bedarf verwenden, um einige zentrale Lage hat, dass Sie das Verhalten des Containers konfigurieren kann. Ob das sein eine Config-Datei oder eine schöne Reihe von API-Aufrufen, die irgendwo in einer globalen Klasse eingewickelt werden können, wenn der Behälter nicht leicht konfigurierbar ist, dann wird es geht Kopfschmerzen sein.
  2. Lifetime Management - Sie wollen wirklich einen Behälter, der die Fähigkeit für unterschiedliche Objektlebensdauern zu ermöglichen hat. Sie könnten ein bestimmtes Objekt wollen immer einen neuen IPersonCreator zu bekommen, aber Sie wollen nur eine IPersonService in Existenz zu einem bestimmten Zeitpunkt.
  3. Automatische Dependency Injection - Ok, so Dependency Injection ist das Konzept, dass IoC oben auf gebaut ist, aber Sie wollen nicht haben, sich selbst zu verwalten. Die Idee dabei ist, dass, wenn Sie eine IPersonCreator zum ersten Mal fragen, sollte es alle löst es Abhängigkeiten und die Abhängigkeiten usw. automatisch.

Insgesamt, was Sie benötigen, hängt von dem Projekt, aber es gibt mehrere Behälter gibt, die Ihre Bedürfnisse ganz gut passt.

Andere Tipps

In der Reihenfolge ihrer Bedeutung:

  1. Lassen Sie mindestens Setter und Konstruktor Injektion,
  2. Separate Konfiguration von Code,
  3. Lassen Sie verschiedene Arten von Konfiguration (XML oder Anmerkungen)

Diese werden mehr als 15 Zeilen Code erfordern, aber die scheinen Schlüssel für mich.

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