Zasada pojedynczej odpowiedzialności

0

Czy taka metoda:

SprawdzCzyTowarPosiadaKodKreskowyJezeliNieToGoDodaj(Towar towar, string kodKreskowy)
{
	if(SprawdzCzyTowarPosaidaKodKreskowy(towar, kodKreskowy)) return;

	DodajKodKreskowy(towar, kodKreskowy);
}

jest prawidłowa (w myśl zasady pojedynczej odpowiedzialności)?

ps. Wiem, że nazewnictwo powinno być w j. angielskim - chodziło tylko o pokazanie idei.

0

Moim zdaniem ta funkcja nie ma sensu i jest wypaczeniem zasady.

if (!CzyTowarPosaidaKodKreskowy(towar, kodKreskowy))
{
    DodajKodKreskowy(towar, kodKreskowy);
}

Bez tworzenia osobnej funkcji do jednego ifa.

0

Rozumiem.

Jednak w tym przypadku metoda sprawdzająca np. towar (w której jest np: sprawdzenie czy posiada dane kody kreskowe, czy ma poprawną nazwę, czy należy do odpowiedniej grupy itp) zaczyna być dość długa (zakładając że każde sprawdzenie wygląda tak jak to przykładowe z kodem kreskowym), a zapisując je w osobnych metodach zapis będzie krótszy i chyba czytelniejszy (bo bez ifów) - stąd właśnie pomysł ja zbudowanie metody w ten sposób, jednak nie spodobało mi się to że metoda zarówno sprawdza, jak i modyfikuje towar.

0

Dobra ale wiesz o tym, że metody typu completeShoppingCartIfHaveBarCode throwExceptionIfInvalidName terminateThreadIfTaskIsAPoisonPill są okey i możesz sobie takie robić.
Serio mówie. Nie łamią żadnych zasad i są okey. Po prostu metody które mają w środku if cośtam to zrób cośtam

1 użytkowników online, w tym zalogowanych: 0, gości: 1