Last active
December 23, 2015 03:49
-
-
Save joseluistorres/6576378 to your computer and use it in GitHub Desktop.
Ejemplo Single Responsibility
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Hurricane | |
def initialize(latitud, longitud, lluvia, marejadas) | |
@latitud = latitud | |
@longitu = longitud | |
@lluvia = lluvia | |
@marejadas = marejadas | |
end | |
def afectar_localidad(latitud, longitud) | |
@latitud = latitud | |
@longitud = longitud | |
if @lluvia | |
puts "----------LLUEVE HARTAMENT----------" | |
end | |
if @marejadas | |
puts "_-_-_-_-_-_-_-_-_-_-_-_-MUCHAS OLAS_-_-_-_-_-_-_-_-" | |
end | |
end | |
end | |
Hurricane.new(10,20, true, true).afectar_localidad(20,30) | |
# ======================================================================== | |
# Ejemplo refactorizado v1 | |
class Posicion | |
attr_reader :lat, :lon | |
def initialize(lat, lon) | |
@lat = lat | |
@lon = lon | |
end | |
end | |
class Huracan | |
attr_reader :posicion | |
def initialize(posicion, lluvia, marejadas) | |
@posicion = posicion | |
@lluvia = lluvia | |
@marejadas = marejadas | |
end | |
def afectar_localidad(nueva_posicion) | |
mover_huracan(nueva_posicion) | |
llovera_o_no | |
se_lleva_ramadas_o_no | |
end | |
def mover_huracan(nueva_posicion) | |
posicion.lat = nueva_posicion.lat | |
posicion.lon = nueva_posicion.lon | |
end | |
def llovera_o_no | |
puts "----------LLUEVE HARTAMENTE----------" if @lluvia | |
end | |
def se_lleva_ramadas_o_no | |
puts "_-_-_-_-_-_-_-_-_-_-_-_-MUCHAS OLAS_-_-_-_-_-_-_-_-" if @marejadas | |
end | |
end | |
Huracan.new(Posicion.new(10,20), true, true).afectar_localidad(Posicion.new(20,30)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment