结构型/代理模式/UserService1.cs

(完整代码) 1KB

namespace 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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。