Warum machen die Leute denken, dass irgendjemand will, instanziiert das interface?
Was wir wollen, zu tun ist, um die Kraft umsetzen zu implementieren Sie den Konstruktor, genauso wie die anderen interface-Methoden.
Eine Schnittstelle ist wie ein Vertrag. Sagen wir, ich habe ein interface Queue, und ich möchte sicherstellen, dass Entwickler erstellen Sie einen Konstruktor mit einem argument, das schafft eine singleton-Warteschlange (Eine neue Warteschlange mit nur das element). Warum sollte das nicht Teil des Vertrages sein? Mit mindestens der Java-Schnittstellen, die nicht angegeben werden.
Dass Sie schlecht sind, dass Sie keinem Zweck dienen. In seinem Kern, ein interface ist einfach ein Daten-übergabe-Vertrag. Es gibt keine implementations-befestigt mit einer Schnittstelle und damit gibt es nichts zu initialisieren und keine Notwendigkeit für einen Konstruktor.
Wenn Sie müssen irgendeine Art von Initialisierung, Ihre viel besser dran, mit einer abstrakten Klasse.
First off, ich bin nicht einverstanden, dass interface ist nur ein Daten-übergabe-Vertrag. Wenn das wahr wäre, würden Sie erlaubt werden, um Eigenschaften zu definieren, die in einer Schnittstelle.
Ich würde nicht gerade denken, es ist komisch, etwas zu tun:
Dadurch können Sie zum erstellen von Instanzen der Dritten Klassen für den Datenzugriff auf der Grundlage von einfachen Reflexion statt nur einen Daten Vertrag.
Ich bin mir ziemlich sicher, dass dies nicht das beste Beispiel, ich würde für zu gehen eine abstrakte Basisklasse, die hier in der realen Welt, aber ich bin mir auch ziemlich sicher, dass es perfekt triftige Gründe für die Definition einer Konstruktor-Methoden' Vertrag in eine Schnittstelle, die ich noch nicht gedacht.
Habe ich noch nicht gesehen es getan, aber ich würde nicht denken, dass es seltsam oder schlecht.
Obwohl Schnittstellen können keine Konstruktoren in den meisten Sprachen, die Fabrik-Muster bietet einen Vertrag für den Bau von Objekten, ähnlich wie ein interface. Werfen Sie einen Blick auf, die.
Ob oder nicht Sie schlecht sind, ich kenne keine Sprache, die die Fähigkeit hat, geben Sie einen Konstruktor für eine Schnittstelle.
Dass gesagt wird, aber ich persönlich glaube nicht, dass der Konstruktor der ein Objekt ist Teil des Objekts die Schnittstelle und als solche hinzufügen einen Konstruktor, um eine Schnittstelle hemmen würde der natürlichen Flexibilität, Schnittstellen leisten.
Warum machen die Leute denken, dass irgendjemand will, instanziiert das interface?
Was wir wollen, zu tun ist, um die Kraft umsetzen zu implementieren Sie den Konstruktor, genauso wie die anderen interface-Methoden.
Eine Schnittstelle ist wie ein Vertrag. Sagen wir, ich habe ein interface Queue, und ich möchte sicherstellen, dass Entwickler erstellen Sie einen Konstruktor mit einem argument, das schafft eine singleton-Warteschlange (Eine neue Warteschlange mit nur das element). Warum sollte das nicht Teil des Vertrages sein? Mit mindestens der Java-Schnittstellen, die nicht angegeben werden.
InformationsquelleAutor der Antwort Kai Christensen
Dass Sie schlecht sind, dass Sie keinem Zweck dienen. In seinem Kern, ein interface ist einfach ein Daten-übergabe-Vertrag. Es gibt keine implementations-befestigt mit einer Schnittstelle und damit gibt es nichts zu initialisieren und keine Notwendigkeit für einen Konstruktor.
Wenn Sie müssen irgendeine Art von Initialisierung, Ihre viel besser dran, mit einer abstrakten Klasse.
InformationsquelleAutor der Antwort JaredPar
First off, ich bin nicht einverstanden, dass interface ist nur ein Daten-übergabe-Vertrag. Wenn das wahr wäre, würden Sie erlaubt werden, um Eigenschaften zu definieren, die in einer Schnittstelle.
Ich würde nicht gerade denken, es ist komisch, etwas zu tun:
Dadurch können Sie zum erstellen von Instanzen der Dritten Klassen für den Datenzugriff auf der Grundlage von einfachen Reflexion statt nur einen Daten Vertrag.
Ich bin mir ziemlich sicher, dass dies nicht das beste Beispiel, ich würde für zu gehen eine abstrakte Basisklasse, die hier in der realen Welt, aber ich bin mir auch ziemlich sicher, dass es perfekt triftige Gründe für die Definition einer Konstruktor-Methoden' Vertrag in eine Schnittstelle, die ich noch nicht gedacht.
Habe ich noch nicht gesehen es getan, aber ich würde nicht denken, dass es seltsam oder schlecht.
InformationsquelleAutor der Antwort Kris
Obwohl Schnittstellen können keine Konstruktoren in den meisten Sprachen, die Fabrik-Muster bietet einen Vertrag für den Bau von Objekten, ähnlich wie ein interface. Werfen Sie einen Blick auf, die.
InformationsquelleAutor der Antwort RossFabricant
Ob oder nicht Sie schlecht sind, ich kenne keine Sprache, die die Fähigkeit hat, geben Sie einen Konstruktor für eine Schnittstelle.
Dass gesagt wird, aber ich persönlich glaube nicht, dass der Konstruktor der ein Objekt ist Teil des Objekts die Schnittstelle und als solche hinzufügen einen Konstruktor, um eine Schnittstelle hemmen würde der natürlichen Flexibilität, Schnittstellen leisten.
InformationsquelleAutor der Antwort Andrew Hare