中介者模式--买房卖房

    public class Mediator

    {

        public virtual void GetHouseInfo(Customer customer, string house)

        {

        }

        public virtual void GetBuyerExpectedInfo(Customer customer, string house)

        {

        }

        public virtual bool FindMatch(out Customer buyer, out Customer seller) { buyer = null; seller = null; return false; }

        public virtual void SellerBuyerMeet(Customer buyer, Customer seller) { }

        public virtual void ProcessDeal(Customer buyer, Customer Seller) { }

    }

    public class Customer

    {

        protected string _name;

        protected string _phone;

        protected Mediator _mediator;

        public Customer(string name, string phone, Mediator mediator)

        {

            _name = name;

            _mediator = mediator;

        }

        public string GetName() { return _name; }

        public string GetPhone() { return _phone; }

        public Mediator GetMediator() { return _mediator; }

        public virtual void Call() { }

    }

    public class Buyer : Customer

    {

        protected string _requirement;

        public override void Call()

        {

            _mediator.GetBuyerExpectedInfo(this, _requirement);

        }

    }

    public class Seller : Customer

    {

        protected string _houseInfo;

        public override void Call()

        {

            _mediator.GetHouseInfo(this, _houseInfo);

        }

    }

    public class LianJia : Mediator

    {

        private Dictionary<string, Customer> _buyers = new Dictionary<string, Customer>();

        private Dictionary<string, Customer> _seller = new Dictionary<string, Customer>();

        public override void GetBuyerExpectedInfo(Customer customer, string house)

        {

            _buyers.Add(house, customer);

        }

        public override void GetHouseInfo(Customer customer, string house)

        {

            _seller.Add(house, customer);

        }

        public override bool FindMatch(out Customer buyer, out Customer seller)

        {

            bool found = false;

            buyer = null;

            seller = null;

            foreach (string house in _seller.Keys)

            {

                if (_buyers.ContainsKey(house))

                {

                    buyer = _buyers[house];

seller = _seller[house];

                    found = true;

                    break;

                }

            }

            return found;

        }

        public override void SellerBuyerMeet(Customer buyer, Customer seller)

        {

            string name = buyer.GetName();

            string nameSeller = seller.GetName();

            //  ~~~~

        }

        public override void ProcessDeal(Customer buyer, Customer Seller)

        {

            // ~~~~

        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值