Lets sagen, ich habe:Grenze Methoden einer Klasse nur diejenigen einer Schnittstelle
public interface IFoo{
public void bar();
}
und
public class Foo implements IFoo{
public void bar(){
//bar...
}
}
Aber IFoo ist neu und Foo ist das einzige, was es für jetzt implementiert.
Ich möchte sicherstellen, dass jemand anderes nicht versehentlich zusätzliche Methoden zu Foo hinzufügt, ohne sie auch zu IFoo hinzuzufügen.
Gibt es trotzdem, um dies in Java zu gewährleisten?
Sie könnten einen Test mit Reflexionen schreiben, der fehlschlägt, wenn eine Klasse, die IFoo implementiert, eine (öffentliche) Methode hat, die nicht Teil von IFoo ist. – Kuchi
Dies ist unnötig einschränkend. –
Wenn Sie nur mit der Schnittstelle im Rest Ihrer Codebasis codieren, wird alles, das zu 'Foo' und nicht'IFoo' hinzugefügt wird, nicht sichtbar sein. Es wird die Leute nicht davon abhalten, Dinge nur zu "Foo" hinzuzufügen, aber sie werden es sehr schnell bemerken, wenn sie versuchen, sie zu benutzen ... – azurefrog