«method-chaining» 태그된 질문


8
메소드 체인을 사용할 때 객체를 재사용하거나 생성합니까?
다음과 같은 메소드 체인을 사용할 때 : var car = new Car().OfBrand(Brand.Ford).OfModel(12345).PaintedIn(Color.Silver).Create(); 두 가지 접근 방식이있을 수 있습니다. 다음과 같이 동일한 객체를 재사용하십시오. public Car PaintedIn(Color color) { this.Color = color; return this; } 다음 Car과 같이 모든 단계에서 새 유형의 객체를 만듭니다 . public Car PaintedIn(Color color) { var …

4
메소드 체인을 사용하여 오브젝트를 빌드하는 관용구의 이름은 무엇입니까?
필자는 메소드 체인 을 사용하여 Builder또는 Prototype패턴 과 유사한 객체를 설정 하지만 각 메소드 호출마다 새 객체를 만들지 않고 대신 원래 객체를 수정하는 패턴을 사용합니다. 예: new Menu().withItem("Eggs").withItem("Hash Browns").withStyle("Diner"); 이 패턴의 이름이 있는지, 안티 패턴으로 간주되는지 궁금합니다. 더 유창하게 읽을 수 있지만 긴 메소드 체인으로 이어질 수 있기 때문입니다.

7
코딩 스타일 문제 : 매개 변수를 가져 와서 수정 한 다음 해당 매개 변수를 반환하는 함수가 있어야합니까?
나는이 두 가지 관행이 같은 동전의 양면인지 아니면 어느 쪽이 더 좋은지에 대해 친구와 약간의 논쟁을 벌이고 있습니다. 매개 변수를 가져 와서 멤버를 채우고 반환하는 함수가 있습니다. Item predictPrice(Item item) 전달 된 동일한 객체 에서 작동 하므로 항목을 반환 할 필요가 없다고 생각합니다. 실제로, 발신자의 관점에서 볼 때, 새 항목 …

7
함수는 변경되지 않은 매개 변수 만 반환합니다.
방금 작업중 인 프로젝트 에서이 기능을 찾았습니다. -- Just returns the text unchanged. -- Note: <text> may be nil, function must return nil in that case! function Widget:wtr(text) return text end 너무 슬프게도 코더는 더 이상 회사에서 작동하지 않습니다. 왜 아무것도하지 않는 함수를 만들지 만 호출 된 매개 변수를 반환합니까? …

1
메소드 당 하나의 매개 변수 만 필요한 체인 된 메소드는 카레와 동일합니까?
나는 최근 루비와 함께 놀았으며 순수한 객체 지향 언어 (그리고 순수하지 않은 언어)에서도 하나의 매개 변수 만 취한 다음 함께 연결되는 메서드를 만드는 것이 함수형 언어로 커링하는 것과 같은지 궁금합니다. 스타일? 그렇지 않다면 왜 안됩니까? 주제에 대해 자세하고 엄격한 답변을 부탁드립니다.

4
자체 참조 메소드 체인에 대한 실제 단점이 있습니까?
최근에 특정 프로젝트의 특정 클래스에 대해 체인 방법을 구현하여 코드의 가독성을 향상시킬 수 있다고 제안했습니다. 나는 "편의를 위해서가 아니라 의미론을 위해 유창한 인터페이스를 구현해야한다"라는 대답을 얻었고 제 제안은 거절되었습니다. 나는 유창한 인터페이스를 제안하는 것이 아니라 가독성과 코딩 편의성을 향상시키기 위해 메서드 체인 자체 ( 서로 혼란 스러울 수 있음) 에 …

4
클래스의 메소드는 언제 자신을 수정 한 후 동일한 인스턴스를 리턴해야합니까?
나는 세 가지 방법을 가지고있는 클래스가 A(), B()하고 C(). 이러한 메소드는 자체 인스턴스를 수정합니다. 방법은 인스턴스는 별도의 사본 (다만 때 인스턴스를 반환해야하지만 Clone()) 나는 반환하는 자유로운 선택 가지고 void또는 같은 인스턴스 ( return this;) 메소드에서 동일한 인스턴스를 수정하고 다른 값을 반환하지 않습니다. 동일한 수정 된 인스턴스를 반환하기로 결정할 때와 같은 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.