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)

 

Rafath Khan

Tu powinien być pean na moją cześć, jaki to wspaniały jestem i jakimi niezwykłymi problemami się zajmuję, ale prawda jest taka, że jak każdy człowiek - mam swoje wady i może jakieś zalety. Są momenty, kiedy mam odpowiednią ilość zasobów psychoenergetycznych i mogę przenosić góry, a są niestety i takie momenty, kiedy mi się nawet z łóżka wstać nie chce... nie może tak źle nie jest, ale chętnie bym sobie pospał dłużej... Niemniej jednak, gdy uda się pokonać siebie - satysfakcja jest, ale potem przychodzą kolejne rzeczy, z którymi trzeba się zmierzyć... a na nie, niestety, energii może nie starczyć i tu właśnie wkracza tzw samodyscyplina - powinieneś usiąść i zrobić to coś, a nie siedzieć na kanapie i zajadać się słodyczami i oglądać jakiś nieciekawy serial czy film dla spalenia swojej najważniejszej waluty świata... czasu, którego nie da się odzyskać. I właśnie o tej samodyscyplinie traktować będę na tym blogu + kilka innych tematów, które są mi potrzebne do pracy