2012-09-18 5 views
2

개체에 대해 여러 가지 방법을 수행해야 할 때 어떤 솔루션을 사용 하시겠습니까?동일한 개체에서 여러 메서드를 수행하는 방법은 무엇입니까?

코드 자체에 대한 이야기해야

class Foo 
    def self.build 
    foo = new 
    foo.first 
    foo.second 
    foo 
    end 

    def first 
    end 

    def second 
    end 
end 

class Bar 
    def self.build 
    new.first.second 
    end 

    def first 
    self 
    end 

    def second 
    self 
    end 
end 
+1

간결함을 찾으려면'.tap()'을 살펴 보라. ... –

+0

사실, #tap은 그렇게 열심히 흔드는 것이 아니라, 나는 그것을 알고 거의 사용하지 않습니다 ... –

답변

1

나는 당신이 이러한 메서드를 호출 할 것으로 예상하는 횟수에 따라 달라집니다 생각합니다. 그들이 함께 자주 부름을받을 수 있습니까? 그것은 단 한 번이라면 2 라인 방식으로 갈 것입니다. 왜냐하면 불필요하게 self을 반환 할 필요가 없기 때문입니다. 그런 일이 자주 발생하면 두 가지 방법을 연속적으로 호출하는 다른 방법을 사용하십시오.

0

트레이드 오프입니다. 대답은 (1) 주변 코드의 중요성과 (2) 복잡성에 달려 있습니다. 당신은 프로그래머로서 결정을 내려야 만하는 사람입니다. 파이프 모양이 짧아서 수직 공간이 절약됩니다. 스파 스 형태는 디버그하기가 더 쉽습니다. 방법 키워드를 어떻게 선택 하느냐에 따라 인라인 형식이 사람의 문장처럼 읽힐 수도 있지만, 그렇지 않은 경우에는 사람이 읽을 수있는 형태가 될 수 있습니다. 당신의 방법이 무거운 발달의 밑에있는 경우에, 쓰기의 희소 한 방법을 이용하십시오. 안정화 된 코드의 경우 파이프 된 형식은 O.K입니다. 테스트와 같이 덜 중요한 코드의 경우 파이프 형식을 사용합니다. 하나,

(1..100).τᴍ⁒i⁇χ(3, 0, "fizz", nil).πᴍ⁒i⁇χ(5, 0, "buzz", nil).πγZᴍjτ 

그래서 기억 : 사실, 난 내 FizzBuzz 프로그램이 조밀 한 점없는 한 문자 방법을 두 번 barell 배관이 허용하는 내 사용자 지정 라이브러리를 사용하여, 다음과 같습니다 그래서 너무 많이 나는 심지어 점을 생략하는 것이 좋아 라인 파이핑은 아무 것도 아니다. 위의 프로그램은 Ruby에서 "정말 나쁜 스타일"이라고 할 때의 의미이다.))

관련 문제