2012-12-17 4 views
0

템플릿 메서드 유형의 패턴을 구현하고 해당 동작을 구현할 여러 클래스가 있습니다. 다음과 같이OOP - '기본'잘못된 클래스 이름?

는 예를 들어, 내 구조는 다음과 같습니다

TemplateAbstract 
    Type 
     CustomType1 
     CustomType2 
     CustomType3 
     Default 

'기본'클래스는 동작이 사용자 정의 유형의 어떤 것도 필요하지되어야 보유하고 있습니다. 제 질문은 '기본'클래스의 나쁜 이름입니까?

나는이 질문을하기 때문에이 이름에 대해 이미 심각한 의문을 품고 있지만 다른 유형 중에서 기본 동작을 제공하는 클래스는 무엇이라고 생각합니까?

+0

명명 규칙은 자체 문서화되어야합니다. 만약 당신이 지금부터 일년에 당신의 기본 교실을 보았다면, 그 목적이 무엇인지 알았습니까? – maiorano84

+0

기본값은 대부분의 언어에서 키워드입니다. 기본적으로 스위치가있는 언어 –

+0

@ maiorano84 : 문맥이 맞다고 생각합니다. –

답변

0

예를 들어, 다음과 같은 의미입니까? 톰 B는이 조성물 또는 상속에 따라 접근 방법 그의 주석에서 지적한 바와 같이

Number 
    Integer 
    PositiveInteger 
    NegativeInteger 
    OddInteger 
    EvenInteger 

; 하지만 당신이 상속을 사용한다는 것을 의미하는이 구조가 주어 졌다고 가정합니다. "DefaultInteger"유형을 사용하는 제 예제에서는 사용하기가 다소 어색하지만 특정 문제에서는 그렇지 않을 수 있습니다. Integer이 인터페이스 일 경우 StandardInteger이 적합 할 수 있습니다. 개발자가이 유형을 사용하는 방법에 대해 생각하고, "기본"여부를 자신의 별도의 일로서 의미가 있습니다 :

Bread 
    YeastLeavened 
    Wheat 
    TwelveGrain 
    Default 

가 지금은 기본 효모 발효 빵이 어떻게 될지 모르겠지만, 만약 그것은 당신의 베이킹 프로그램에 유용한 구조입니다, 그리고 그것에 대한 본질적으로 '잘못된'것은 없습니다. 개인적으로 Default을 자체 형식으로 사용하지 않고 대신 YeastLeavened.getDefault()에 올바른 메서드를 반환하는 방법이 있습니다.

편집 : 귀하의 질문에 직접 답하기 위해, 일반적으로 "기본값"은 항상 범위 (Integer :: Default)를 통해 사용하지 않는 한 나쁜 이름입니다. 일반적으로 어려운 클래스입니다. 그 자체로 개념적으로 (추상적 기본 기능 또는 시스템에서 기본적으로 사용되는 것으로 기능하는 "실제"클래스)

0

이상적으로, 클래스 이름은 목적을 설명해야합니다. "기본값"은 모호한 용어이며 클래스에서 제공하는 기능에 별다른 의미가 없습니다.

당신은

"이 클래스는 모든 기본적인 기능을 구현하고있다"고 말해 기본 클래스 뭔가 이름을 지정할 수 있습니다 예를 들어, "BaseType", "BasicType"또는 "SimpleType"과 같은 이름을 붙이거나 필요에 맞는 것을 넣을 수 있습니다.

0

그냥 이름에 확장을 호출 충돌을 일으킬 가능성은 매우 낮, 당신에게 클래스가하는 일에 대해 조금 더 알 수

DefaultTypeBehaviour

합니다.