2012-10-12 3 views
-1

일부 수업에 일부 동작 (예 : 좋아요, 댓글, 평가, 답변, 설문 조사 등)을 제공해야합니다. 그러나 모든 수업에는 이러한 모든 행동이 필요합니다. 일부 수업에는 모두 포함될 수 있지만 일부는 2 개만 필요하고 일부는 필요로 할 수도 있습니다 1. 누구나 적응할 수있는 디자인이나 디자인 패턴을 제안 할 수 있습니까?디자인 제안 패턴

+0

http://ux.stackexchange.com/ –

+0

문제의 컨텍스트가 명확하지 않습니다. 특정 프로그래밍 언어로 작업하고 있습니까? 아니면 CSS 동작을 사용하는 이러한 CSS 클래스입니까? – user1201210

+0

C# (.Net)에서 구현해야합니다. – Ambika

답변

1

원하는 메서드를 사용하여 인터페이스를 구현 한 다음 해당 메서드를 클래스 멤버 인 도우미 개체에 위임하게합니다.

예.

public interface MyInterface { 
    public void comment(); 
} 

public class Helper implements MyInterface{ 
    public void comment() { ... } 
} 

public class MyClass implements MyInterface { 
    private final Helper helper = new Helper(); 

    public void comment() { 
     helper.comment(); 
    } 
} 

상당수의 IDE가 자동으로이 위임 코드를 생성 할 수 있습니다. 언어가 다중 상속을 지원하면 도우미를 확장 할 수 있으며 대리인 코드가 필요하지 않습니다.

사용하고 싶지 않은 메서드는 여전히 구현해야하지만, 호출 될 경우 예외를 throw하고 사용하지 말 것을 문서화해야합니다. 이 방식이 마음에 들지 않으면 모든 메소드에 대한 인터페이스가 필요합니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 MyInterface를 많은 클래스에 구현해야 할 때 "private final Helper helper = new Helper(); public void comment() {helper.comment();}"코드가 복제 될 것입니다. 내가 원하지 않는 수업들. – Ambika