Ruby 클래스를 작성 중이며 == 메서드를 재정의하고 싶습니다. 다음과 같이 말하고 싶습니다.private 필드를 공개하지 않아도 equals 메서드를 만들 수 있습니다.
시간과 주파수를 모두 공개하지 않으면 어떻게해야합니까?
FOLLOW UP : 자손 인스턴스 변수에 액세스 할 수 있기 때문에
class ReminderTimingInfo
def initialize(times, frequencies)
@date_times, @frequencies = times, frequencies
end
...
def ==(other)
@date_times == other.times and @frequencies == other.frequencies
end
protected
attr_reader :date_times, :frequencies
end
getters의 요점이 아닌가요? – NullUserException
귀하의 의견을 upvote 의미하지 않았다, hehe. 나는 getters가 어떤 희생을 치르더라도 피할 수있는 것이라고 말하고 싶다. 어떤 형태의 보호 된 접근이나 어떤 것이 있다면 그것은 좋을 것입니다 ... 아마도 어쩌면 거기에 있습니다. –
개체 상태는 가능한 한 비공개이어야합니다. 클래스 사용자가 객체에 명령을 내릴 필요가없는 것은 사용자에게 보이지 않아야합니다. –