( enpassant | 2019. 10. 28., h – 10:35 )

Nézd meg ezt a kommentem, abból látszik mi a bonyolult az Excption-ökkel.
Ha figyelmesen átgondolod, akkor rájössz a DI egyik nagy hibájára is:
- fogalmad sincs, hogy mi fogja implementálni, így azt sem tudhatod, hogy ténylegesen mit fog csinálni.
Ha ténylegesen tudni akarjuk, hogy mit csinál, akkor az összes implementációt meg kell néznünk.
Pl. az exception-ös példámnál, lehet, hogy az egyik implementáció dob exception-t, a másik meg nem. Így, ha egy interfésznél biztosra akarsz menni, hogy dobhat-e RuntimeException-t, akkor minden implementációját meg kell nézned. Ha nem dob egyik sem, majd utólag az egyik dobni fog, akkor kerülhetsz bajba rengeteg helyen, ahol használva van.

Ugyanez a baj minden más absztrakcióval is.
Előnyük, hogy
- a problémateret szétdarabolják, így egy-egy részt könnyebb megérteni önmagában,
- könnyedén le tudod cserélni másra,
- sokkal több helyen és több mindenre használhatod.
Hátránya, hogy
- nehezebb az egészet megérteni, hogy ténylegesen mit csinál,
- utólag is módosulhat, hogy ténylegesen mit csinál, anélkül, hogy bármi átírásra kerülne.