, , Dancer. Dancer, , - , . .
, , , . , , , .
List<Dancer> danceFloor = new List<Dancer>();
danceFloor.Add(new ReservedDancer());
danceFloor.Add(new SuperFreakDancer ());
public class Dancer
{
public virtual void DoYourDance()
{
}
}
public class ReservedDancer : Dancer
{
public override void DoYourDance()
{
}
}
public class SuperFreakDancer : Dancer
{
public override void DoYourDance()
{
}
}
, , Dancer factory ( Dancer, DancerType , ):
public static Dancer NewDancerFromType(DancerType type)
{
Dancer ret = null;
switch (type)
{
case DancerType.Reserved:
ret = new ReservedDancer();
break;
case DancerType.SuperFreak:
ret = new SuperFreakDancer();
break;
}
return ret;
}
, Dancer public, private. , factory , Dancer. , , .