2014-10-22 1 views
0

자바에서 다음과 같은 분류를 만드는 가장 좋은 방법은 무엇인가 궁금합니다.자바 분류 - 최선의 접근 방식은 무엇입니까

  1. 에어
    ----- MotorType
    ----------- PlaneObject

    --- 예를 들어 우리는 다음과 같은 분류와 간단한 응용 프로그램을 --NonMotorType
    ----------- Deltaplane
  2. 지구
    ----- MotorType ----------- CarOboject

    ---- NonMotorType
    ------------ 자전거 환승
  3. 내 초기 아이디어는 모터를 만드는 것이었다

및 nonMotor 추상 클래스를 만들고 클래스의 나머지 부분과 함께 확장 한 다음 물, 공기 및 지구 유형을 열거합니다. 그러나 이것이 최선의 방법인지는 확실하지 않습니다. ID, 모델 및 유형 (분류에 따라 다름) 필드가 있으며 나중에 ID로 검색하려고합니다. 모든 아이디어는 매우 높이 평가됩니다 :) 감사합니다!

+0

'에어'수업에 대해 무엇을 알고 싶습니까? '에어 클래스'인지 아니면 일부 값을 저장하고 싶거나 몇 가지 방법을 원한다는 것을 알고 싶습니까? 모터와 비 모터 사이의 구현의 차이점은 무엇입니까? – Simon

+0

방금 ​​물/지구/공기 유형인지 알고 싶습니다. – user3240544

답변

0

대지, 물 및 공기용 인터페이스도 사용할 수 있습니다. 그래서 당신은 당신의 인터페이스로 주요한 것을 얻을 수 있습니다.

또 다른 방법은 클래스 간의 상속을 확인하는 것입니다. 그래서 부모 클래스에 같은 것을 외주 처리하고이 단계를 단계적으로 확장 할 수 있습니다.

지구, 물, 공기 사양에 대한 열거 형은 다른 변수와 함수가 많기 때문에 신 아이디어이기도합니다. 지구, 물 또는 공기에있는 차량과 동일합니다.

만약 내가이 stuf를 개발한다면 나는 uml 개념을 할 것입니다.

  • 모터 (아마도 인터페이스)
    • 지구
    • 에어
  • 비 모터
    • 지구
    • IR
1

아마 당신은 Vehicle 추상 클래스를 가지고 싶습니다. 이 클래스는 유형이 Motor 인 속성을 가질 수 있습니다.이 속성은 추상적 일 수 있으며 원하는 디자인에 따라 하위 클래스에서 확장 될 수 있습니다.

This tutorial은 추상 수업이 필요한시기를 결정하는 데 도움이 될 수 있습니다.

희망이 있습니다.

0

다목적 ​​성을 유지하기 위해 Air and Earth 인터페이스와 MotorType 및 NonMotorType 추상 클래스를 만들었습니다. 둘 다 VehicleType 수퍼 클래스를 확장했습니다.

자전거와 같은 클래스는 NonMotorType을 확장하고 지구를 구현합니다.

AmphibianCar와 같은 클래스는 MotorType을 확장하고 지구와 물을 구현합니다.

관련 문제