它是桥梁还是立面图案?

时间:2014-06-04 05:37:49

标签: c# design-patterns

我有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);
    }
}

2 个答案:

答案 0 :(得分:2)

您提供的代码实现了IoC (Inversion of Control)模式。

答案 1 :(得分:0)

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

此外,服务类使用两个与两个不同事项相关的实现类。理想情况下,桥梁代表一件事。

所以这更接近外观。