我有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);
}
}
答案 0 :(得分:2)
您提供的代码实现了IoC (Inversion of Control)模式。
答案 1 :(得分:0)
要将其称为桥接模式,您需要查看抽象和实现的演化路径。在这里,可以看到实现演进(通过使用不同的服务提供者和数据库提供者)路径。但是在给出的代码中没有看到抽象演化(即使它是可能的)。
此外,服务类使用两个与两个不同事项相关的实现类。理想情况下,桥梁代表一件事。
所以这更接近外观。