结构型/代理模式/UserService1.cs
(完整代码) 1KBnamespace DesignModeConsole.结构型.代理模式;
/// <summary>
/// 通过让原始类和代理类都继承自一个接口来实现
/// </summary>
internal interface IUserService
{
string GetUserName(int userId);
bool Login(string account, string password);
}
internal class UserService : IUserService
{
public string GetUserName(int userId)
{
return "用户名" + userId;
}
public bool Login(string account, string password)
{
return account == "admin" && password == "123456";
}
}
/// <summary>
/// 用户服务代理类
/// </summary>
internal class UserServiceProxy : IUserService
{
private readonly MetricsService _metricsService;
private readonly UserService _userService;
public UserServiceProxy(UserService userService)
{
_metricsService = new MetricsService();
_userService = userService;
}
public string GetUserName(int userId)
{
_metricsService.WriteLog($"记录请求时间 内容是:{userId}");
return _userService.GetUserName(userId);
}
public bool Login(string account, string password)
{
_metricsService.WriteLog($"记录请求日志 内容是:account:{account} password:{password}");
return _userService.Login(account, password);
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。