2011-08-19 3 views
1
내가 나이가 질문을 읽고 있었다

this one 날 여러 의견이 클래스와 함께이 작업을 수행하는 아주 나쁜 관행이라고 말하고 있었다으로 (예제 질문에 100 +) 서브 클래스의 같은 많은 수의 관리에 대한 갈 것이라고 궁금했다 .매우 많은 수의 하위 클래스로 수퍼 클래스를 어떻게 관리해야합니까?

간단한 예를 들어, Minecraft와 같은 게임 - 모든 것이 블록이므로 명확한 수퍼 클래스가 있습니다. 그러나 각 블록 유형은 밀도, 텍스처, 가중치, 표시 기회 등을 비롯하여 서브 클래스별로 많은 속성 값을 가지고 있습니다. 게임에 수십 가지 유형의 블록이 있다면 "적절한"OOP 방식으로 어떻게 관리 할 수 ​​있습니까?

순수한 클래스가 아닌 더 나은 데이터 구조가 있습니까? 숫자 속성 일 뿐이라면 간단한 파일 (설정 파일조차도)을 사용할 수 있습니다. 그러나 많은 하위 클래스에 대한 코드가있을 가능성이 있습니다. 이 programmers.stackexchange.com에 더 적합한 경우

NB이 내가 구현하려고 노력 약간 더 일반적인 질문하지 뭔가 때문에, 나는 확실하지 않다. 그렇다면 의견에 대해 알려주세요. 질문을 닫고 대신 묻습니다. 나는 또한 어떻게 태그를 붙일 지 모르겠다. 그래서 자유롭게 편집 할 수있다!

답변

1

아마도 노드가 "블록"이고 노드 속성이 노드 속성 인 그래프 데이터 구조를 사용할 수 있습니다. "블록"에 하위 구조가 있으면 부모 노드와 연관된 (하위) 노드를 사용하여 표현할 수 있습니다. 그런 다음 다른 종류의 블록 노드를 만드는 팩터 리 메서드를 사용합니다. 그래프 데이터 구조는 항상 동일하게 유지되지만 관리하고 다르게 구성 노드/그래프를 처리로 복잡성을 이동하기 때문에 사람에서 더 이상 아이디어가 있기 때문에

이것은, ...,

+0

매우 유연한 접근 방식 나는 많은 수의 동일한 객체 (예 : 블록)를 개별적으로보다는 그룹으로 다루는 것이 이치에 맞는 것으로 받아 들일 것입니다. – Alex

관련 문제