2013-07-23 4 views
0

조건에 따라 자식 또는 부모 클래스를 반환하는 디자인 패턴이 있습니까?조건에 따라 자식 또는 부모 클래스를 반환하는 디자인 패턴

시나리오는 다음과 같습니다

내가 기본 클래스와 기본 클래스를 확장하는 복잡한 클래스가 있습니다. 필요한 것은 사용자 요구 사항에 따라 기본 또는 복잡한 클래스를 반환합니다. 구현할 수 있었다면 다른 기본 상태를 사용하고 있지만 이것이 올바른 논리처럼 보이지 않는다고 느낀다. 내 수업이

public class SimpleClass {} 

public class ComplexClass extends SimpleClass {} 

public class MoreComplexClass extends ComplexClass {} 

같은 구조를 가지고 계속 할 수있는 시나리오에 대해,이 일을 적절한 방법이 있어야합니다 ......

내 질문에 잘못이고 내가해야하는 경우 경우 내가 수업을 만드는 방식을 바꾼다. 안내해주십시오.

+0

런타임 패턴을 동적으로 반환하려면 팩터 리 패턴을 사용하십시오. http://en.wikipedia.org/wiki/Factory_method_pattern – Phani

+0

질문이 실제로 이해가되지 않습니다. 어떤 상황에서 당신은 어떤 것을 돌려 주길 원합니까? – bengoesboom

+0

당신이 요구하는 행동을 원하지 않는 이유에 대해 흥미로운 내용은 다음과 같습니다 : http://stackoverflow.com/questions/586363/why-is-super-super-method-not-allowed-in-java , 더 정확하게는 첫 번째 대답 – skiwi

답변

0

이러한 작업은 일반적으로 Factory Method 패턴을 사용하여 구현됩니다. 다음과 같은 경우가 될 수 있습니다.

public class SimpleClass{ 
    public static SimpleClass getMyClass(String cond1/*you conditions as parameters here*/){ 
     if ("case1".equals(cond1)) 
      return new ComplexClass(); 
     //... 
     return new SimpleClass(); 
    } 
} 
관련 문제