Académique Documents
Professionnel Documents
Culture Documents
class Approval
{
static void Main()
{
ExpenseHandler william = new ExpenseHandler(new Employee("William
Worker", Decimal.Zero));
ExpenseHandler mary = new ExpenseHandler(new Employee("Mary Manager",
new Decimal(1000)));
ExpenseHandler victor = new ExpenseHandler(new Employee("Victor
Vicepres", new Decimal(5000)));
ExpenseHandler paula = new ExpenseHandler(new Employee("Paula
President", new Decimal(20000)));
william.RegisterNext(mary);
mary.RegisterNext(victor);
victor.RegisterNext(paula);
Decimal expenseReportAmount;
if (ConsoleInput.TryReadDecimal("Expense report amount:", out
expenseReportAmount))
{
IExpenseReport expense = new ExpenseReport(expenseReportAmount);
interface IExpenseHandler
{
ApprovalResponse Approve(IExpenseReport expenseReport);
void RegisterNext(IExpenseHandler next);
}
if(response == ApprovalResponse.BeyondApprovalLimit)
{
return _next.Approve(expenseReport);
}
return response;
}