@marcin43210 nie czytałem całego wątku i nie wiem czy to zostało poruszone ale interfejs można fajnie wytłumaczyć na przykładzie filter pattern
nie mam czasu pisać example, ale ogólnie chodzi o to że masz np interfejs Filter
z metodą filter()
i robisz np 3 implementacje: StartsWithUppercaseFilter, ContainsALetterFilter i ContainsNumberFilter (wiem, że przykłady troche z d*!@ :D).
Z racji, żę każda z nich implementuje Filter to mozesz zrobić np kolekcje(ArrayList np) filtrów i za ich pomocą filtrować jakiś string, obiekt, whatever :) filtr tylko zwroci true/false czy walidacja się udała
Gdybyś nie miał interfejsu to nie mógłbyś zrobić tego "zestawu filtrów" którymi dane słowo/obiekt filtrujesz. (no mógłbyś zrobić Object ale.. :D)