/// <summary>
        /// 动态代理
        /// </summary>
        static void DynamicProxyByRemoting()
        {
            Console.WriteLine($"动态代理 Remoting{Environment.NewLine}-------------------------------------------");

            DynamicAction action = new DynamicAction();

            action.BeforeActionList.Add(new Action(() => Console.WriteLine("收取中介费")));
            action.BeforeActionList.Add(new Action(() => Console.WriteLine("办理各种过户手术")));
            action.AfterActionList.Add(new Action(() => Console.WriteLine("交易完成")));

            ProxyFactory <HouseA> factory = new ProxyFactory <HouseA>();
            HouseA houseA = factory.CreateProxy();

            houseA.Buy();
            Console.WriteLine("-----------------");

            houseA.Name = "房屋AAAAAAAAAAA";
            HouseA houseAA = factory.CreateProxy(houseA, action);

            houseAA.Buy();
            Console.WriteLine("-----------------");

            ProxyFactory <HouseB> factoryB = new ProxyFactory <HouseB>();
            HouseB houseB = factoryB.CreateProxy(action);

            houseB.Buy();
            Console.ReadKey();
        }
        /// <summary>
        /// 静态代理
        /// </summary>
        static void StaticProxy()
        {
            Console.WriteLine($"静态代理{Environment.NewLine}-------------------------------------------");

            IHouse houseA      = new HouseA();
            IHouse houseAProxy = new HouseProxy(houseA);

            houseAProxy.Buy();

            Console.WriteLine();

            IHouse houseB      = new HouseB();
            IHouse houseBProxy = new HouseProxy(houseB);

            houseBProxy.Buy();

            Console.ReadKey();
        }