5 Stimmen

Sind Tag- (oder "Marker"-) Schnittstellen veraltet?

Ich versuche, einem Kollegen dabei zu helfen, mit OO zurechtzukommen, und stelle fest, dass es in einigen Fällen schwierig ist, solide Beispiele aus der Praxis für das Konzept eines Tags zu finden (oder Markierung ) Schnittstelle. (Eine Schnittstelle, die keine Methoden enthält; sie wird nur als Tag oder Marker oder Label verwendet). Obwohl es für unsere Diskussionen eigentlich keine Rolle spielen sollte, verwenden wir PHP als Plattform für die Diskussionen (weil es eine gemeinsame Sprache für uns ist). Ich bin wahrscheinlich nicht die beste Person, um OO zu lehren, da der Großteil meines Hintergrunds sehr theoretisch und etwa 15 Jahre alt ist, aber ich bin, was er hat.

Auf jeden Fall führt der Mangel an Diskussionen, die ich über Tag-Schnittstellen gefunden habe, zu der Annahme, dass sie nicht einmal ausreichend genutzt werden, um eine Diskussion zu rechtfertigen. Liege ich hier falsch?

1 Stimmen

Vielleicht wäre ein Link zu etwas, das erklärt, was Sie mit einer "Tag-Schnittstelle" meinen, nützlich?

0voto

Cheeso Punkte 184210

Der .NET Style Guide empfiehlt die Verwendung von Attribute statt Tag/Marker-Schnittstellen.

Alt-Text http://www.freeimagehosting.net/uploads/th.4528577db5.jpg
Klicken für Vollbild
Quelle: http://www.informit.com/articles/article.aspx?p=423349&seqNum=6
oder eine beliebige Anzahl anderer Expositionspunkte von Cwalinas Empfehlungen, wie das Buch.

1 Stimmen

Attribute sind nutzlos für das Anhängen von Erweiterungsmethoden

0 Stimmen

Richtig - Attribute sind keine Schnittstellen, wenn Sie das meinen.

0 Stimmen

Aus diesem Grund kann die Kennzeichnung von Schnittstellen nützlich sein. (sei keine Marionette 8o)

0voto

orbfish Punkte 6769

Ich habe im letzten Monat zweimal eine Tag-Schnittstelle verwendet. Sie können einige unangenehme Probleme beim Refactoring umgehen, um eine Funktion generischer zu machen.

Das heißt, eine andere Sache, die ich gerade entdeckt habe, ist die Verwendung einer Tag-Schnittstelle als übergeordnete Klasse für eine Reihe von verwandten Schnittstellen mit Methoden. Das Objekt kann weitergereicht werden, und verschiedene Präprozessoren können prüfen, ob sie mit einem bestimmten Objekt umgehen müssen. Eine Möglichkeit, die Verarbeitung in einem separaten Objekt zu halten, wo sie hingehört, aber die Implementierungsdetails der verarbeiteten Objekte in ihren Definitionen, wo sie hingehören.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X