是桥梁图案还是立面图案?

本文关键字:梁图案 | 更新日期: 2023-09-27 18:06:28

我有C接口,其中包含A和B接口。

这是实现哪个模式?

public class Service : IService
{
    private readonly IWebServiceProvider _serviceProvider;
    private readonly IDatabaseProvider _dbProvider;
    public Service(IWebServiceProvider serviceProvider, IDatabaseProvider dbInteractionsProvider)
    {
        _serviceProvider = serviceProvider;
        _dbInteractionsProvider = dbInteractionsProvider;
    }
    public IEnumerable<Company> CompanySearch(string name)
    {
        return _dbProvider.CompanySearch(name);
    }
    public ValidationResult ValidateUser(Data data)
    {
        var result = _serviceProvider.ValidateUser(new ValidationData()
        {
            Company = data.CompanyName,
            Password = data.Password,
            Login = data.Login
        });
        return new ValidationResult() { ErrorMessage = result.ErrorMessage };
    }
    public bool ResetPassword(ResetPassword resetPassword)
    {
        throw new System.NotImplementedException();
    }
    public string GenerateURL(int id)
    {
        return _serviceProvider.GenerateURL(id);
    }
}

是桥梁图案还是立面图案?

您提供的代码实现了IoC(控制反转)模式。

要将其称为桥接模式,您需要看到沿着抽象和实现的演进路径。这里可以看到实现演进(通过使用不同的服务提供者和数据库提供者)的路径。但是在给出的代码中看不到抽象进化(尽管它是可能的)。

同样,服务类使用两个与两个不同事项相关的实现类。一座桥理想地代表一件事。

所以这更接近于门面