Single Responsibility Principle [SRP]
W programowaniu obiektowym, każda klasa powinna dotyczyć tylko jednego autora/wątku/przypadku, dla którego może wykonywać pewne metody, ale zawsze dotyczy to tego konkretnego właściciela.
SRP powinna odpowiadać zasadzie:
The [classname] [method] itself
The Hero attacks itself
The Hero moves itself
The Hero buys item itself
The Hero save game progress itself – nope!
SRP dotyczy również method, które powinny być odpowiedzialne tylko za jedno zadanie.
Dependency injection
Wzorzec, który zezwala na usunięcie twardo zakodowanych danych i zamanę ich na modyfikowalne dane, w trakcie uruchamiania lub kompilacji.. tzn zamiast tworzyć w metodzie nowy obiekt, mogę go przekazać jako parametr do metody i pracować już tym konkretnym obiekcie.
Hard-codedd Dependency:
class Hero def initialize @dicepool = Dicepool.new end end hero = Hero.new
Poprawna implementacja:
class Hero def initialize(dicepool) @dicepool = dicepool end end hero = Hero.new(Dicepool.new)
Najnowsze komentarze