在不改变原来类的基础上,给原来的类的某方法扩展功能
public class DirectorAop
{
public static void Show()
{
User user = new User() {
Name = "jump",
Password="123123"
};
Console.WriteLine("原来只干注册的事情");
IUserProcessor userProcessor = new UserProcessor();
userProcessor.RegUser(user);
Console.WriteLine("实现aop后,的装饰器模式实现:");
userProcessor = new UserProcessorDirecotr(userProcessor);//装饰了一层
userProcessor.RegUser(user);
}
}
public class User
{
public string Name { get; set; }
public string Password { get; set; }
}
public interface IUserProcessor
{
void RegUser(User user);
}
/// <summary>
/// 需要被装饰的类【就是要被扩展功能的类】
/// </summary>
public class UserProcessor : IUserProcessor
{
public void RegUser(User user)
{
Console.WriteLine("注册用户:" + user.Name);
}
}
/// <summary>
/// 装饰器类【就是扩展功能的类】
/// </summary>
public class UserProcessorDirecotr : IUserProcessor
{
private IUserProcessor _userProcessor;
public UserProcessorDirecotr(IUserProcessor userProcessor)
{
this._userProcessor = userProcessor;
}
public void RegUser(User user)
{
Console.WriteLine("注册前,做点其他的吧");
_userProcessor.RegUser(user);
Console.WriteLine("注册成功,发个邮件吧");
}
}
来源:https://www.cnblogs.com/LJP-JumpAndFly/p/12165182.html