소규모 대학 프로젝트의 경우 시상식을 시뮬레이트하는 스몰 토크에서 애플리케이션을 작성해야합니다. 여기서 예술가와 밴드는 상을 받기 위해 지명 될 수 있습니다. 그러나 개인 아티스트는 후보로 투표 할 배심원 일 수도 있습니다.스몰 토크에서 런타임에 개체에 특성 추가
배심원이 아닌 아티스트에게 투표를 할 수 없도록 제한하기 위해 배심원에게 추가 된 각 아티스트의 개체에 동적으로 특성을 추가 할 생각이었습니다. 그러면 메소드 클래스를 적절하게 처리 할 수 있습니다.
이제 내 질문에 개체에 특성을 동적으로 추가 할 수 있습니까? 나는 이미 How can I add methods to a class at runtime in Smalltalk?을 보았지만 내가 찾고있는 것이 아니다.
안부
UPDATE 1 를 클래스 쪽의 방법을 추가 한 후,이 작동한다. 내가 배심원에 예술가를 할당 할 때, 내가 좋아하는 뭔가를 쓰기 : 나는 목록에 (투표) 아티스트를 추가 juryMemberOf
방법에있어서 다음
kurt_cobain juryMemberOf: aJury.
을 (배심원은 그가 모든 추적하기 회원 :
juryList add: (VotingArtist from: self)
다음 juryList를 검사하면 참으로 목록에 VotingArtist 개체가 추가 된 것을 볼 수 있습니다. 그러나 내 작업 영역의 원본 아티스트 개체는 VotingArtist로 변경되지 않았습니다.
kurt_cobain votesFor: justin_bieber.
이 시점에서 시간에 내가 kurt_cobain 여전히 아티스트 객체이기 때문에 정상적인 방법 votesFor
에 대한 MessageNotUnderstood
얻을 : 이것이 내가 쓸 수있는 능력을 가질 필요가 이후에 가능하지만 확실하지.
알겠습니다. 상속은 내가 생각한 가능성 중 하나 였지만 스몰 토크에 대한 지식은 매우 제한되어 있으며 하위 유형의 객체에 객체를 복사 할 가능성을 알지 못했습니다. 감사! – RazorAlliance192
당신이 제공 한 코드를 실행할 때 messageNotUnderst를 받았습니다 ... VotingArtist는 아티스트의 하위 클래스이지만 아직이 오류가 발생합니다. – RazorAlliance192
어떤 오류가 있습니까? –