2011-08-10 2 views
1

사람들이 클래스 이름을 지정하는 데 사용하는 고려 사항을 이해하려고합니다. 당신이 다음 중에서 결정하는 방법은 무엇입니까? 단순히 사용클래스 이름 지정, 클래스 이름을 지정하고 속성을 만들거나 해당 속성을 클래스 이름에 넣어야합니까?

student = SmartStudent.new 

편집 대

student = Student.new(:smart) 

: 나는 내가 모델링하고 무엇을 결정할 필요는 다만 방법에 답이 권리 정말하거나 잘못된 것 같아요.

+1

클래스 모델링이란 무엇입니까? 'SmartStudent', 또는'Student'는 우연히 ': smart'입니까? – Oded

+0

@Oded 귀하의 질문은 정말로 나를 생각하게합니다. 솔직히 두 줄의 코드와 차이가 있다고 생각하지 않았습니다. 후자는 똑똑한 학생을 모델링하려고합니다. – elliance

답변

0

당신은 당신의 자아를 요청해야합니다 : 학생의 속성으로 인해 학생이 실제로 다른 학생과 다릅니다.

가능하지 않은 경우 제안한 첫 번째 해결 방법을 사용하는 것이 좋습니다. 일반적으로 학생 유형의 계층 구조를 배치하는 것이 더 쉽습니다 (구성 대 상속 참조). 학생 유형이 커지면 학생 수업이 확산되어 모든 것을 적절하게 처리하지 못하게 될 수 있습니다.

반면 스마트 학생 클래스에 실제로 맞춤 동작이 있고 메소드 우선 적용 등을 사용하여 특정 클래스의 학생 유형을 확인할 때마다 해당 클래스에 대한 작업을 수행하려는 경우, 그러면 상속이 옵션이 될 수 있습니다. 나는 그것에서 멀리 체재 할 것입니다.

정답에 대한 자세한 내용을 알려주십시오. 귀하의 디자인에 따라 다르므로 귀하의 질문에 단순한 예 또는 아니오를 말할 수 없습니다.

EDIT : 이 점도 고려하십시오. 학생이 속성 이상을 가질 수 있습니까? 그렇다면 첫 번째 방법을 사용해야합니다. 둘 이상의 속성 (예 : 똑똑하고 뚱뚱한)이있는 학생 유형을 모델링하는 것이 불가능할 수도 있습니다.

1

일반적으로 나는 그들이 대표하는 명사의 가장 일반적인 형태로 클래스를 명명하고 싶다. 그래서 당신의 예제에서 명사는 학생입니다. 스마트은 명사를 설명하는 형용사입니다. 형용사는 학생의 지능을 나타냅니다. 그래서 내 attreribute 지능 것입니다.

그런 식으로 내가 할 수 :

빌 = 새로운 학생
Bill.intelligence = 스마트

밥 = 새로운 학생
Bob.intelligence = 바보