public void EjectDebitCard() { atmMachineState.EjectDebitCard(); // Debit Card has been ejected so internal state of ATM Machine // has been changed to 'DebitCardNotInsertedState' if (atmMachineState is DebitCardInsertedState) { atmMachineState = new DebitCardNotInsertedState(); Console.WriteLine("ATM Machine internal state has been moved to : " + atmMachineState.GetType().Name); } }