zoukankan      html  css  js  c++  java
  • BankAccounts.cs

    using System;
    using Wrox.ProCSharp;
    using Wrox.ProCSharp.VenusBank;
    using Wrox.ProCSharp.JupiterBank;
    namespace Wrox.ProCSharp
    {
       class MainEntryPoint
       {
          static void Main()
          {
             IBankAccount venusAccount = new SaverAccount();
             IBankAccount jupiterAccount = new GoldAccount();
             venusAccount.PayIn(200);
             venusAccount.Withdraw(100);
             Console.WriteLine(venusAccount.ToString());
             jupiterAccount.PayIn(500);
             jupiterAccount.Withdraw(600);
             jupiterAccount.Withdraw(100);
             Console.WriteLine(jupiterAccount.ToString());
          }
       }
    }


    namespace Wrox.ProCSharp
    {
       public interface IBankAccount
       {
          void PayIn(decimal amount);
          bool Withdraw(decimal amount);
          decimal Balance
          {
             get;
          }
       }
    }

    namespace Wrox.ProCSharp.VenusBank
    {
       public class SaverAccount : IBankAccount
       {
          private decimal balance;
          public void PayIn(decimal amount)
          {
             balance += amount;
          }
          public bool Withdraw(decimal amount)
          {
             if (balance >= amount)
             {
                balance -= amount;
                return true;
             }
             Console.WriteLine("Withdrawal attempt failed.");
             return false;
          }
          public decimal Balance
          {
             get
             {
                return balance;
             }
          }
          public override string ToString()
          {
             return String.Format("Venus Bank Saver: Balance = {0,6:C}", balance);
          }
       }
    }

    namespace Wrox.ProCSharp.JupiterBank
    {
       public class GoldAccount : IBankAccount
       {
          private decimal balance;
          public void PayIn(decimal amount)
          {
             balance += amount;
          }
          public bool Withdraw(decimal amount)
          {
             if (balance >= amount)
             {
                balance -= amount;
                return true;
             }
             Console.WriteLine("Withdrawal attempt failed.");
             return false;
          }
          public decimal Balance
          {
             get
             {
                return balance;
             }
          }
          public override string ToString()
          {
             return String.Format("Jupiter Bank Saver: Balance = {0,6:C}", balance);
          }
            }
     
    }
  • 相关阅读:
    65 组件 静态文件相关 视图
    作者和书籍的增删改查 多对多
    64 装饰器函数: 母版 csrf防御机制 cookie
    61 书籍和出版社 的增删改查 几秒后跳转一个页面
    60 Django项目 单表(出版社)的增删改查 __str__方法及格式化输出 的两个方法
    模块 itertools
    59 Django基础三件套 , 模板{{}}语言 , 程序连mysql Django项目app Django中ORM的使用
    nginx 并发数
    设置tomcat最大内存
    goaccess安装
  • 原文地址:https://www.cnblogs.com/shihao/p/2490247.html
Copyright © 2011-2022 走看看