/// <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(); }