2011-01-10 17 views
2

Ich habe eine Schnittstelle definiert, die von einer Basisklasse implementiert wird. Diese Basisklasse bietet grundlegende Funktionalitäten. Jetzt habe ich mehrere Implementierungen, die die Basisklasse implementieren und diese Funktionalitäten mit weiteren Details erweitern. Wenn ich diese mehreren Implementierungen aufruft, wirke ich die Implementierungen auf die Schnittstelle (die in der Basisklasse implementiert ist).Interface + Baseclass - Welches Muster ist das?

Gibt es ein Muster, in dem diese Art der Schnittstellenbenutzung beschrieben wird? Oder ist diese Architektur kontraproduktiv?

Grüße

+1

Dies ist ein absolut gültiges und sinnvolles Design - mit Schnittstelle für polymorphes Verhalten und einer Basisklasse für die Wiederverwendung von Implementierungen. – VinayC

Antwort

2

Wenn Ihre Basisklasse abstrakt ist, dann gibt es ein bekanntes Muster, das abstrakte Klasse-Muster von einem ihres Namen. Ihre Verwendung ist gültig, da sie die von der Basisklasse eingeführten Shenanigans ausblendet, die nicht Teil der Schnittstellenimplementierung sind. Dadurch wird der Client-Code davor geschützt, Ihre Typen zu missbrauchen.

Mehr dazu document.

Verwandte Themen