Názor ke článku Proč Java používá tak dlouhé názvy tříd a proměnných od Ravise - Osobně vidím stejné dilema, jenže obráceně: proč je...

  • 1. 11. 2023 17:52

    Ravise
    Stříbrný podporovatel

    Osobně vidím stejné dilema, jenže obráceně: proč je pro mě podstatné, že je to zrovna CSVImportOrder­Service? Všechny věci, které jsou pro csv specifické za mě řeší ta třída (od toho přeci je), a tam, kde se držím rozhraní, zase nezáleží, jestli je implementací csv nebo sqlite (ať se neopakujeme :))

    Nehledě na to, že pokud mi ta služba přiteče parametrem, tak ten bude stejně skoro vždycky typu ImportOrderSer­viceInterface. Ze situací, kdy tomu tak nebude, mě napadají serializace a debugovací pohledy dovnitř objektu, a obě tyhle situace mohou být stejně pokryté interfacem a metodou - tyhle věci budu chtít dělat ať už budu mít pod rukama instanci CSVImportOrder­Service nebo XLSXImportOrder­Service.

    Jediné místo, které je opravdu specifické pro csv bude konstruktor (nebo pár řádků těsně za ním), kde budu nastavovat oddělovače, konce řádků, skutečný zdroj těch dat atp., a tam je zase spousta věcí zřejmá z kontextu. Ani tam bych se nedržel typu tak úzce, protože zítra nebo příští týden z toho bude switch a příští měsíc ImportOrderSer­viceFactory.