SRP (PDF wersja; HTML wersja) stwierdza, że Kiedy naruszasz SRP (Zasada Jednej Reponsibility)?
Nigdy nie powinno być więcej niż jeden powód klasą zmienić
Gdy przyjrzeć Outlook, okno Kalendarz wydarzeń , ma "Zapisz i Zamknij".
Więc kiedy funkcjonalności jednego lub obu Zapisz lub Zamknij zmiany, który przycisk należy zmienić. To oczywiście narusza SRP.
Ta funkcja oszczędza czas i jest wygodna, ponieważ większość użytkowników oczekuje, że zrobi to po zapisaniu terminu w kalendarzu.
Ale teraz moje pytanie brzmi, kiedy inny czy naruszają SRP inny niż gdy funkcja musi być usuable w Outlook?
Co? Jak zmienia się przycisk, gdy zmienia się zapis lub zamknięcie? Jak myślisz, która klasa implementuje Zapisz i zamknij? W jaki sposób zmiana tych funkcji ma wpływ na przycisk? –
To, co miałem na myśli przez "zmianę", to to, że podstawowa realizacja zmiany "zapisz" lub "zamknij"; Nie, gdy interfejs użytkownika przycisku musi się zmienić. – Sung
Zły przykład. Funkcja z kodem przycisku posiada _sekwencję_ dwóch akcji: "Zapisz()" i "Zamknij()". To nie narusza niczego. Dowolna funkcja może być sekwencją, iteracją lub wyborem. –