Pytania otagowane jako single-responsibility

Zasada pojedynczej odpowiedzialności stanowi, że każdy moduł w systemie powinien być odpowiedzialny za pojedynczą cechę lub funkcjonalność albo za agregację spójnej funkcjonalności. Innym powszechnym sposobem wyrażenia tego jest stwierdzenie, że każdy moduł powinien mieć tylko jeden powód do zmiany.

6
Czy logowanie obok implementacji stanowi naruszenie zasad SRP?
Myśląc o zwinnym tworzeniu oprogramowania i wszystkich zasadach (SRP, OCP, ...) zadaję sobie pytanie, jak traktować rejestrowanie. Czy logowanie obok implementacji stanowi naruszenie zasad SRP? Powiedziałbym, yesponieważ wdrożenie powinno być również w stanie działać bez logowania. Jak więc lepiej wdrożyć rejestrowanie? Sprawdziłem niektóre wzory i doszedłem do wniosku, że najlepszym …

6
Czy wielokrotne dziedziczenie narusza zasadę pojedynczej odpowiedzialności?
Jeśli masz klasę, która dziedziczy z dwóch odrębnych klas, czy nie oznacza to, że twoja podklasa automatycznie (przynajmniej) 2 rzeczy, po jednej z każdej nadklasy? Uważam, że nie ma różnicy, jeśli masz wiele interfejsów dziedziczenia. Edycja: Dla jasności uważam, że jeśli podklasowanie wielu klas narusza SRP, to implementacja wielu interfejsów …

4
Czy zasada pojedynczej odpowiedzialności ma zastosowanie do funkcji?
Według Roberta C. Martina SRP stwierdza, że: Klasa nigdy nie powinna mieć więcej niż jednego powodu do zmiany. Jednak w swojej książce Clean Code , rozdział 3: Funkcje, pokazuje następujący blok kodu: public Money calculatePay(Employee e) throws InvalidEmployeeType { switch (e.type) { case COMMISSIONED: return calculateCommissionedPay(e); case HOURLY: return calculateHourlyPay(e); …

5
Czy SRP (zasada pojedynczej odpowiedzialności) jest obiektywny?
Rozważ dwóch projektantów interfejsu użytkownika, którzy chcą zaprojektować „atrakcyjne dla użytkownika” projekty. „Przyciąganie użytkownika” to koncepcja, która nie jest obiektywna i dotyczy wyłącznie projektantów. W ten sposób projektant A mógłby na przykład wybrać czerwony kolor, podczas gdy projektant B wybiera niebieski. Projektant A utwórz układ zupełnie inny niż projektant B …

5
MVC: Czy kontroler łamie zasadę pojedynczej odpowiedzialności?
Zasada jednolitej odpowiedzialności stwierdza, że ​​„klasa powinna mieć jeden powód zmiany”. We wzorze MVC zadaniem kontrolera jest mediacja między widokiem a modelem. Oferuje interfejs dla widoku do raportowania działań wykonanych przez użytkownika w GUI (np. Zezwalanie na widok do wywołania controller.specificButtonPressed()) i jest w stanie wywoływać odpowiednie metody w modelu …

7
Czy powinienem refaktoryzować duże funkcje, które w większości składają się z jednego wyrażenia regularnego? [Zamknięte]
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Właśnie napisałem funkcję, która obejmuje około 100 linii. Słysząc to, prawdopodobnie masz ochotę …

4
Jak konkretny powinien być wzorzec pojedynczej odpowiedzialności dla klas?
Załóżmy na przykład, że masz program do gier konsolowych, który ma wszystkie metody wejścia / wyjścia do iz konsoli. Byłoby inteligentny, aby utrzymać je wszystkie w jednej inputOutputklasie lub przerwać je do większej liczby klas konkretnych jak startMenuIO, inGameIO, playerIO, gameBoardIO, itd. Tak, że każda klasa ma około 1-5 metodami? …

5
Czy podmiot domeny narusza zasadę pojedynczej odpowiedzialności?
Pojedyncza odpowiedzialność (powód zmiany) bytu powinna polegać na jednoznacznej identyfikacji, innymi słowy, jego odpowiedzialność musi być możliwa do odnalezienia. Książka DDD Erica Evana, str. 93: najbardziej podstawową odpowiedzialnością jednostek jest ustanowienie ciągłości, aby zachowanie było jasne i przewidywalne. Robią to najlepiej, jeśli są zachowani. Zamiast skupiać się na atrybutach, a …

4
Duża klasa z jedną odpowiedzialnością
Mam Characterklasę linii 2500, która: Śledzi wewnętrzny stan postaci w grze. Ładuje i utrzymuje ten stan. Obsługuje ~ 30 przychodzących poleceń (zwykle = przekazuje je do Game, ale niektóre polecenia tylko do odczytu są natychmiast reagowane). Odbiera ~ 80 połączeń od Gamepodejmowanych działań i odpowiednich działań innych osób. Wydaje mi …


3
Praca w oparciu o zasadę pojedynczej odpowiedzialności (SRP) w Pythonie, gdy połączenia są drogie
Niektóre punkty bazowe: Wywołania metod w języku Python są „drogie” ze względu na ich interpretowaną naturę . Teoretycznie, jeśli twój kod jest wystarczająco prosty, rozbicie kodu w Pythonie ma negatywny wpływ oprócz czytelności i ponownego użycia ( co jest dużym zyskiem dla programistów, a nie dla użytkowników ). Zasada pojedynczej …

5
Czy przydaje się mini-refaktoryzacja kodu w nadziei na poprawę jakości, czy jest to po prostu „przenoszenie kodu” bez większych korzyści?
Przykład Natknąłem się na monolityczny kod, który robi „wszystko” w jednym miejscu - ładuje dane z bazy danych, pokazuje znaczniki HTML, działa jak router / kontroler / akcja. Zacząłem stosować SRP przenoszący kod bazy danych do własnego pliku, zapewniając lepsze nazewnictwo rzeczy i wszystko wyglądało dobrze, ale potem zacząłem mieć …

5
Jak uniknąć naruszenia SRP w klasie w celu zarządzania buforowaniem?
Uwaga: Próbka kodu jest napisana w języku c #, ale to nie powinno mieć znaczenia. Umieściłem c # jako tag, ponieważ nie mogę znaleźć bardziej odpowiedniego. Chodzi o strukturę kodu. Czytam Clean Code i staram się zostać lepszym programistą. Często staram się przestrzegać zasady pojedynczej odpowiedzialności (klasy i funkcje powinny …

3
IValidatableObject vs. Single Responsibility
Podoba mi się punkt rozszerzalności MVC, pozwalający modelom widoków na implementację IValidatableObject i dodanie niestandardowej weryfikacji. Staram się, aby moje Kontrolery były szczupłe, ponieważ ten kod jest jedyną logiką sprawdzania poprawności: if (!ModelState.IsValid) return View(loginViewModel); Na przykład model widoku logowania implementuje IValidatableObject, pobiera obiekt ILoginValidator poprzez wstrzyknięcie konstruktora: public interface …

5
Powtarzanie kodu a metoda wieloodpowiedzialna
Staram się przestrzegać zasady pojedynczej odpowiedzialności (SRP), a także pomijać powtórzenia kodu. Jednak często są miejsca, w których istnieją powtórzenia kodu, które są niczym więcej niż blokami kodu wywołań, które są odporne na wyodrębnienie ich do co najmniej sensownej nazwanej metody: DoAction1(); DoAction2(); if (value) DoAction3(); DoAction4(); Jaki jest najlepszy …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.