저는 "Beginning Ruby"이라는 책을 가지고 일하고 있습니다. 캡슐화 할 때까지 모든 것이 잘되어 가고있었습니다. 이 코드가 무엇을하는지 알아낼 수 있습니다. 왜이 방법으로이 방법을 설정했는지 알 수 없습니다.루비 캡슐화
this is the link 페이지에 캡슐화 된 책이 있습니다.
class Person
def initialize(name)
set_name(name)
end
def name
@first_name + ' ' + @last_name
end
def set_name(name)
first_name, last_name = name.split(/\s+/)
set_first_name(first_name)
set_last_name(last_name)
end
def set_first_name(name)
@first_name = name
end
def set_last_name(name)
@last_name = name
end
end
p = Person.new("Fred Bloggs")
puts p.name
는 이런 일이 동일한을 달성 할 수 나에게 보인다
class Person
def initialize(name)
@first_name, @last_name = name.split(/\s+/)
end
def name
@first_name + ' ' + @last_name
end
end
p = Person.new("Fred Bloggs")
puts p.name
왜 자신의 별도의 방법에서 개체 변수를 설정하는 문제를 통해 이동?
과 같이 처리합니다. 캡슐화 작업을하기 때문에. 캡슐화 란 변수를 분리하고 액세스하고 수정하는 안전한 방법을 노출하는 것을 의미합니다. –
to_s 메서드를 재정의하고 name이라는 메서드를 사용하지 않고 해당 개체를 텍스트로만 표현할 수 있습니다. – kainlite