亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? class1.cs

?? 來自DoFactory的設計模式, 由于是本人根據已有代碼創建,沒有NETOptimized項
?? CS
字號:
?// State pattern -- Real World example  

using System;

namespace DoFactory.GangOfFour.State.RealWorld
{

    // MainApp test application 

    class MainApp
    {
        static void Main()
        {
            // Open a new account 
            Account account = new Account("Jim Johnson");

            // Apply financial transactions 
            account.Deposit(500.0);
            account.Deposit(300.0);
            account.Deposit(550.0);
            account.PayInterest();
            account.Withdraw(2000.00);
            account.Withdraw(1100.00);

            // Wait for user 
            Console.Read();
        }
    }

    // "State" 

    abstract class State
    {
        protected Account account;
        protected double balance;

        protected double interest;
        protected double lowerLimit;
        protected double upperLimit;

        // Properties 
        public Account Account
        {
            get { return account; }
            set { account = value; }
        }

        public double Balance
        {
            get { return balance; }
            set { balance = value; }
        }

        public abstract void Deposit(double amount);
        public abstract void Withdraw(double amount);
        public abstract void PayInterest();
    }

    // "ConcreteState" 

    // Account is overdrawn 

    class RedState : State
    {
        double serviceFee;

        // Constructor 
        public RedState(State state)
        {
            this.balance = state.Balance;
            this.account = state.Account;
            Initialize();
        }

        private void Initialize()
        {
            // Should come from a datasource 
            interest = 0.0;
            lowerLimit = -100.0;
            upperLimit = 0.0;
            serviceFee = 15.00;
        }

        public override void Deposit(double amount)
        {
            balance += amount;
            StateChangeCheck();
        }

        public override void Withdraw(double amount)
        {
            amount = amount - serviceFee;
            Console.WriteLine("No funds available for withdrawal!");
        }

        public override void PayInterest()
        {
            // No interest is paid 
        }

        private void StateChangeCheck()
        {
            if (balance > upperLimit)
            {
                account.State = new SilverState(this);
            }
        }
    }

    // "ConcreteState" 

    // Silver is non-interest bearing state 

    class SilverState : State
    {
        // Overloaded constructors 

        public SilverState(State state)
            :
          this(state.Balance, state.Account)
        {
        }

        public SilverState(double balance, Account account)
        {
            this.balance = balance;
            this.account = account;
            Initialize();
        }

        private void Initialize()
        {
            // Should come from a datasource 
            interest = 0.0;
            lowerLimit = 0.0;
            upperLimit = 1000.0;
        }

        public override void Deposit(double amount)
        {
            balance += amount;
            StateChangeCheck();
        }

        public override void Withdraw(double amount)
        {
            balance -= amount;
            StateChangeCheck();
        }

        public override void PayInterest()
        {
            balance += interest * balance;
            StateChangeCheck();
        }

        private void StateChangeCheck()
        {
            if (balance < lowerLimit)
            {
                account.State = new RedState(this);
            }
            else if (balance > upperLimit)
            {
                account.State = new GoldState(this);
            }
        }
    }

    // "ConcreteState" 

    // Interest bearing state 

    class GoldState : State
    {
        // Overloaded constructors 
        public GoldState(State state)
            : this(state.Balance, state.Account)
        {
        }

        public GoldState(double balance, Account account)
        {
            this.balance = balance;
            this.account = account;
            Initialize();
        }

        private void Initialize()
        {
            // Should come from a database 
            interest = 0.05;
            lowerLimit = 1000.0;
            upperLimit = 10000000.0;
        }

        public override void Deposit(double amount)
        {
            balance += amount;
            StateChangeCheck();
        }

        public override void Withdraw(double amount)
        {
            balance -= amount;
            StateChangeCheck();
        }

        public override void PayInterest()
        {
            balance += interest * balance;
            StateChangeCheck();
        }

        private void StateChangeCheck()
        {
            if (balance < 0.0)
            {
                account.State = new RedState(this);
            }
            else if (balance < lowerLimit)
            {
                account.State = new SilverState(this);
            }
        }
    }

    // "Context" 

    class Account
    {
        private State state;
        private string owner;

        // Constructor 
        public Account(string owner)
        {
            // New accounts are 'Silver' by default 
            this.owner = owner;
            state = new SilverState(0.0, this);
        }

        // Properties 
        public double Balance
        {
            get { return state.Balance; }
        }

        public State State
        {
            get { return state; }
            set { state = value; }
        }

        public void Deposit(double amount)
        {
            state.Deposit(amount);
            Console.WriteLine("Deposited {0:C} --- ", amount);
            Console.WriteLine(" Balance = {0:C}", this.Balance);
            Console.WriteLine(" Status = {0}\n",
              this.State.GetType().Name);
            Console.WriteLine("");
        }

        public void Withdraw(double amount)
        {
            state.Withdraw(amount);
            Console.WriteLine("Withdrew {0:C} --- ", amount);
            Console.WriteLine(" Balance = {0:C}", this.Balance);
            Console.WriteLine(" Status = {0}\n",
              this.State.GetType().Name);
        }

        public void PayInterest()
        {
            state.PayInterest();
            Console.WriteLine("Interest Paid --- ");
            Console.WriteLine(" Balance = {0:C}", this.Balance);
            Console.WriteLine(" Status = {0}\n",
              this.State.GetType().Name);
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产污污免费网站入口| 欧美中文字幕久久| 国产一区二区三区四| 国产成人免费视频网站| jizz一区二区| 欧美一区二区三区在线电影| 日韩一区二区在线观看视频| 国产亚洲欧美中文| 亚洲精品视频免费看| 免费观看一级欧美片| 国产精品自拍网站| 在线亚洲欧美专区二区| 欧美精品一区二区三区高清aⅴ| 精品国产乱码久久久久久浪潮| 国产精品传媒在线| 午夜精品久久久久久久蜜桃app| 亚洲综合色在线| 国产成人av影院| 91精品国产91综合久久蜜臀| 国产精品毛片a∨一区二区三区 | 亚洲精品v日韩精品| 91丝袜美腿高跟国产极品老师 | 国产精品久久一级| 另类小说一区二区三区| 色哟哟一区二区| 国产精品免费av| 成人性视频网站| 欧美国产精品v| 成人综合日日夜夜| 久久精品视频一区二区| 久久电影网站中文字幕| 在线播放国产精品二区一二区四区| 久久婷婷国产综合国色天香| 免费一区二区视频| 3atv一区二区三区| 蜜桃一区二区三区在线观看| 欧美精品777| 理论电影国产精品| 久久网这里都是精品| 国产精品1024久久| 日韩美女视频一区| 在线观看欧美黄色| 奇米影视7777精品一区二区| 日韩一级黄色大片| 久久精品999| 成人欧美一区二区三区白人| 国产真实精品久久二三区| 国产午夜久久久久| 欧美综合一区二区三区| bt欧美亚洲午夜电影天堂| 久久久噜噜噜久久中文字幕色伊伊| 午夜精品久久久久久久99水蜜桃 | 亚洲精品第1页| 欧美肥妇bbw| 成人午夜av电影| 日韩av中文字幕一区二区三区| 欧美一区二区三区在线看| 国产精品夜夜嗨| 亚洲一区二区三区视频在线| 日韩欧美一区二区不卡| 99久久伊人网影院| 精品一区二区免费在线观看| 中文字幕制服丝袜一区二区三区| 欧美精品电影在线播放| 99国产精品久久久久| 久久福利视频一区二区| 亚洲一二三四在线| 久久精品一区四区| 欧美一区二区三区系列电影| 一本大道久久a久久精二百| 99在线精品免费| 国产精品性做久久久久久| 青青草91视频| 北条麻妃一区二区三区| 蜜桃精品视频在线| 日韩av一区二区三区四区| 国产精品乱码一区二区三区软件| 欧美丰满美乳xxx高潮www| 日韩美女视频一区| 欧美mv日韩mv亚洲| 欧美丰满少妇xxxxx高潮对白| 高清国产一区二区| 激情av综合网| 久久99精品久久久久久| 婷婷久久综合九色国产成人| 最新高清无码专区| 中文字幕一区二区三区四区不卡| 国产亲近乱来精品视频| 久久综合视频网| 精品日产卡一卡二卡麻豆| 99视频有精品| 欧美成人精品3d动漫h| 欧美一区二区三区精品| 欧美一区二区三区在线看| 3d动漫精品啪啪一区二区竹菊| 欧美亚洲图片小说| 日韩一区二区电影| 国产日韩视频一区二区三区| 久久久www免费人成精品| 欧美成人aa大片| 国产精品伦理一区二区| 亚洲欧洲另类国产综合| 一区二区三区波多野结衣在线观看| 亚洲精品va在线观看| 美腿丝袜亚洲一区| 成人免费高清在线| 91久久精品网| xf在线a精品一区二区视频网站| 国产亚洲欧美日韩俺去了| 亚洲同性gay激情无套| 性做久久久久久久久| 图片区日韩欧美亚洲| 国产精品资源站在线| 一本色道久久综合亚洲精品按摩 | 国产精品中文有码| 色999日韩国产欧美一区二区| 91丨九色porny丨蝌蚪| 69堂亚洲精品首页| 欧美一级二级在线观看| 亚洲视频免费在线| 国内精品伊人久久久久av影院 | 五月激情综合网| 99九九99九九九视频精品| 日韩欧美精品在线视频| 一区二区久久久久| 麻豆精品国产传媒mv男同| 欧美图区在线视频| 国产亚洲欧美中文| 国模娜娜一区二区三区| 欧美撒尿777hd撒尿| 亚洲日本丝袜连裤袜办公室| 国产盗摄视频一区二区三区| 精品三级在线观看| 成人高清视频免费观看| 久久久久国产精品免费免费搜索| 精品一区二区av| 国产午夜亚洲精品理论片色戒| 另类欧美日韩国产在线| 精品成人在线观看| 91亚洲午夜精品久久久久久| 国产精品人成在线观看免费| 国产成人精品亚洲777人妖| 国产精品久久久久久久久图文区| 国产91对白在线观看九色| 国产精品久久综合| 在线看日本不卡| 日韩av一区二区三区四区| 欧美一区二区三区思思人| 蜜桃一区二区三区在线| 国产亚洲欧美一级| 久久综合视频网| 在线观看视频欧美| 狠狠色综合色综合网络| 亚洲欧洲精品成人久久奇米网| 在线区一区二视频| 国产毛片一区二区| 亚洲国产精品嫩草影院| 欧美一级高清片| 色爱区综合激月婷婷| 久久99精品视频| 亚洲国产精品久久久男人的天堂| 日韩三级伦理片妻子的秘密按摩| 久久精品国产**网站演员| 欧美激情艳妇裸体舞| 在线视频你懂得一区| 国产·精品毛片| 美日韩一区二区三区| 一区二区久久久| 国产精品伦理一区二区| 精品国产一区二区亚洲人成毛片| 99精品国产91久久久久久| 久久av资源网| 热久久一区二区| 洋洋av久久久久久久一区| 国产日韩一级二级三级| 日韩三级av在线播放| 91精品国产91久久久久久一区二区| 风流少妇一区二区| 成人av午夜影院| eeuss国产一区二区三区| 成人小视频免费在线观看| 粉嫩aⅴ一区二区三区四区 | 久久机这里只有精品| 麻豆免费看一区二区三区| 午夜精品一区二区三区三上悠亚| 一区二区三区在线影院| 欧美国产精品久久| 亚洲欧美中日韩| 一区二区三区 在线观看视频| 亚洲精品日韩一| 日韩国产欧美在线观看| 久久成人久久鬼色| av中文字幕在线不卡| 国产成人免费网站| 欧美体内she精高潮| 欧美日韩精品专区| 国产午夜久久久久| 亚洲女同ⅹxx女同tv| 视频一区视频二区中文字幕| 精品一区二区三区香蕉蜜桃|