代理模式

2014-11-24 01:34:04 · 作者: · 浏览: 0


代理模式模型

为其它对象提供一种代理以控制对这个对象的访问.


\


< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICAKPGJyPgo8L3A+CjxoMT4gIMq+wP08L2gxPgogICAgICAgPGJyPgoKPHA+ICAgICAg1Nq439bQtcTKsbryo6zT0LrctuC6ptDftcS6ota9w8fT0MHLsLXBtbXEttTP87rzo6zI57n719S8urK7usPS4su8uPjX1Ly6tcTFrsnxu/LV38TQyfHLzSYjMzEwMzY7zu+1xLuwo6zNqLOjtry74dXS0ru49rj619S8urC1wbXV37nYz7WxyL3PusO1xKOszdDL/LDv19S8usvNtqvO96Os1eLW1sG1sK61xLe9yr2+zcrHtPrA7cSjyr2ho8u1zajL19K7teO2+aOsvs290M6qsfDIy9f2vN7SwsSjyr2ho9Lyzqq/tMbwwLTKvNbVyse0+sDt1NrX9tXi0rvH0LXEu+62r6OsUmVhbFN1YmplY3TKvNbVyse249TaxLu687XEo6yyu7v9vKvW97avtcS94bn7vs3Kx7T6wO3X7tbVus2xu7C1wbXV39PQx+nIy9bVs8m+7Mr0wcuhozwvcD4KPHA+ICAgICC1sci7o6y0+sDtxKPKvbK7vfa99ta709ChsM6qy/vIy9f2vN7SwqGx1eLSu7j21/fTw6Gj1eLW1srKtcPG5Le0tcTQp7n7ztLDx7u5yseyu8zhs6u1xKGjyfq77tbQu7nT0LrctuC0+sDtxKPKvaGjscjI56Os0vjQ0L+o1qe4tqGjw7+0zrnkvdajrLT41cW/qKOs0rvH0LjjtqihozwvcD4KPHA+ICAgIL3hubnI5828o7o8L3A+CjxwPiAgIDxpbWcgc3JjPQ=="https://www.cppentry.com/upload_files/article/76/1_tnfiv__.jpg" alt="\">


我们把钱放在银行卡里,当卖完东西要向老板付钱的时候,只要刷卡就搞定了。所以,这里,银行卡代理了自己存在银行的现钞,并在买东西是执行付钱的动作。这样是不是非常的方便呢!出门时,妈妈再也不用担心我的钱被小偷偷走了。


代码如下:

namespace 银行卡买东西
{
     class Boss  //商品类
    {
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
 
    }

    interface BuyGoods  //买东西的接口
    {
        void BuyClothes();  //买衣服
        void BuyFood();   //买吃的
        void BuyBooks();   //买书
 
    }

 
    class MyCash : BuyGoods    //银行卡中的现金
    {
        Boss boss;  //定义收钱的人
        public MyCash(Boss boss)   
        {
            this.boss = boss;
            
        }

        public void BuyClothes()
        {
            Console.WriteLine(boss.Name + ",我买这件衣服了,给你钱。");
        }

        public void BuyFood()
        {
            Console.WriteLine(boss.Name + ",我要吃这个,给你钱。");
 
        }

        public void BuyBooks()
        {
            Console.WriteLine(boss.Name + ",我要这本书,给你钱。");
 
        }
 
    }

    class BankCard:BuyGoods 
    {
        MyCash myRMB;
        public BankCard(Boss boss)
        {
            myRMB = new MyCash(boss);
        }

        public void BuyClothes()
        {
            myRMB.BuyClothes();
        }

        public void BuyFood()
        {
            myRMB.BuyFood();

        }

        public void BuyBooks()
        {
            myRMB.BuyBooks();

        }
 
    }



    class Program
    {
        static void Main(string[] args)
        {
            Boss LaoBan = new Boss();
            LaoBan.Name = "老板";

            MyCash ACBCCard = new MyCash(LaoBan);

            ACBCCard.BuyClothes();
            ACBCCard.BuyFood();
            ACBCCard.BuyBooks();




        }
    }
}

运行后如图:


PS:我要是真的有张可以这样消费的卡就好了。