Programátorsko-analytická hádanka
Máte třídu objednávky, která může nabývat 3 stavů (Nová, Schválená, Zamítnutá) . Dokážete určit, co všechno je v následujícím kódu špatně?
public enum OrderState
{
New,
Rejected,
Approved
}
public class Order
{
protected OrderState m_state;
public Order()
{
m_state = OrderState.New;
}
public virtual void Approve()
{
if (m_state != OrderState.New)
{
throw new InvalidOperationException();
}
m_state = OrderState.Approved;
}
public virtual void Reject()
{
if (m_state != OrderState.New)
{
throw new InvalidOperationException();
}
m_state = OrderState.Rejected;
}
}
public class SpecialOrder : Order
{
public SpecialOrder() : base()
{
}
public override void Approve()
{
throw new InvalidOperationException();
}
public override void Reject()
{
if ((m_state != OrderState.New) && (m_state != OrderState.Approved))
{
throw new InvalidOperationException();
}
m_state = OrderState.Rejected;
}
}
Wednesday, 30 March 2005 19:31:00 (Central Europe Standard Time, UTC+01:00)
Programátorské hádanky