:적절한 메서드를 호출하기 위해 C# 개체 팩토리에 대한 형식 검사가 필요합니까? 다음 의사 C# 코드 감안할 때
class BigMessage : Message { }
class SmallMessage : Message { }
abstract class Message
{
static public Message Factory()
{
Random random = new Random();
int randomNumber = random.Next(0, 100);
if (randomNumber > 50)
{
return new BigMessage();
}
else
{
return new SmallMessage();
}
}
}
class Worker
{
public void Comprehend(BigMessage bm)
{
}
public void Comprehend(SmallMessage bm)
{
}
public void start() {
Message msg = Message.Factory();
Comprehend(msg);
}
}
나는 나에게 메시지 (예를 들어 큰 또는 작은 메시지)로부터 상속 된 임의의 메시지 객체를 제공하기 위해 공장을 요청하고, 나는 노동자 계급의 이해 방법을 원하는 경우 과부하 (명시 적 유형 검사가 아닌 올바른 OO 방법)를 사용하여 주어진 메시지 유형에 따라 작동하려면 다음 두 가지 유형의 오류가 발생하고 왜 내가 잘못했는지 이해할 수 있도록 도와 줄 수 있습니까?
- 'Worker.Comprehend (BigMessage)'에 대한 최상의 오버로드 된 메서드 일치에는 잘못된 인수가 있습니다.
- 은 '메시지'에서로 변환 할 수 없습니다 'BigMessage'
가 궁극적으로 나는 공장은 내가 미리 알 수없는 유형의 메시지에서 상속 객체로 날을 제공 할 전망이다. 내가 반환 한 다른 유형을 다르게 행동해야합니다. 상속은이 시나리오에서 매우 유용합니다. 추상 클래스는 하위 클래스와 공유되는 많은 유용한 기능을 제공하기 때문입니다.
.NET 4.5가 사용됩니다.
미리 감사드립니다.
물론! 감사. –