是桥梁图案还是立面图案?
本文关键字:梁图案 | 更新日期: 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(控制反转)模式。
要将其称为桥接模式,您需要看到沿着抽象和实现的演进路径。这里可以看到实现演进(通过使用不同的服务提供者和数据库提供者)的路径。但是在给出的代码中看不到抽象进化(尽管它是可能的)。
同样,服务类使用两个与两个不同事项相关的实现类。一座桥理想地代表一件事。
所以这更接近于门面