Google Appengine (Java)의 복잡한 클래스 계층 구조
-
11-09-2019 - |
문제
내 엔티티 (JDO)의 Java (GAE/J)와 Google Appengine에서 동일한 클래스를 상속/연장하는 여러 클래스를 가질 수 있습니까? 예를 들어 나는 다음과 같습니다.
- 내용 (추상 클래스)
- 강의
그리고 내 코스는 다음과 같습니다.
- 컨텐츠를 확장하는 비디오 목록
- 책 목록
동시에
- 비디오에는 태그 목록이 있습니다
- 책에는 태그 목록이 있습니다
- 코스에는 태그 목록이 있습니다
gae를 할 수 있습니까?
나는 이것과 비슷하지만 너무 많은 문제가 있습니다. 이런 종류의 예제가 있습니까?
해결책
새 질문 제목을 기반으로 업데이트하십시오
나는 아직도 당신의 어려움이 무엇인지 이해하지 못하지만, 나는 그것을 촬영할 것입니다
당신의 질문은
내 엔티티의 Java (GAE/J)와 Google Appengine에서 동일한 클래스를 상속/연장하는 여러 클래스를 가질 수 있습니까?
대답은 그렇습니다. 왜 그렇지 않습니까? 나는 당신의 질문에 할 수없는 아무것도 보지 못합니다. 어떤 문제가 있습니까?
나는 이것과 비슷하지만 너무 많은 문제가 있습니다. 이런 종류의 예제가 있습니까? 당신이 게시 한 설명에 대해 잘못된 것을 볼 수 없기 때문에 정확히 어떻게하고 있습니까?
그리고 당신을 돕기 위해, 여기에 할 수있는 한 가지 방법이 있습니다.
interface Tagable {
public doSomeThingWithTagList();
}
class abstract Content implements Tagable {
List<Tag> tagList;
}
class Video extend Content implements Tagable {
}
class Book Tagable{
List<Tag> tagList;
}
class Course Tagable {
List<Video> videoList;
List<Books> bookList;
List<Tag> tagList
}
다른 팁
나는 당신이 언급 한 내용을 바탕으로 여기에서 어둠 속에서 촬영할 것입니다.
- 관리 방법과 함께 태그 목록을 컨텐츠에 넣으십시오.
- 비디오, 서적 및 코스는 모두 컨텐츠를 확장 할 수 있습니다 (디자인에서 이것이 의미가 있는지 확실하지 않음)
- 코스에는 비디오 및 책 목록이 포함될 수 있습니다.
- 모두 태그 목록이 있습니다
내가 언급했듯이, 이것은 당신의 디자인에서 논리적으로 의미가 없지만 더 많은 정보가 없으면 말할 수 없습니다.
당신이 언급 한 대부분의 계급 관계는 상속이 아닌 구성의 사례가되어야합니다. Java에서 여러 구현 상속을 수행 할 수는 없지만 여러 인터페이스를 구현할 수 있습니다. 구성에는 이러한 한계가 없으며 객체에는 다른 (다중) 클래스의 다른 객체 (구성)에 대한 참조가 포함될 수 있습니다.