Код: Выделить всё
interface ISprocketDeployer
{
void DeploySprocket(int tenantId);
}
Код: Выделить всё
[Inject] // Ninject
public ISprocketDeployer SprocketDeployer { get; set; }
private void _button_OnClick(object sender, EventArgs e)
{
SprocketDeployer.DeploySprocket();
}
Мне также пришло в голову, что многие реализации также используют дополнительные зависимости просто для поиска. получить подробную информацию об арендаторе и что я мог бы еще больше сократить количество зависимостей, просто введя эту информацию напрямую, например
Код: Выделить всё
class SprocketDeployer
{
public SprocketDeployer(ITenantRepository tenantRepository)
{
_tenantRepository = tenantRepository;
}
void DeploySprocket(int tenantId)
{
var tenantName = _tenantRepository.GetTenant(tenantId).Name;
// Do stuff with tenantName
}
}
Код: Выделить всё
class SprocketDeployer
{
public SprocketDeployer(Tenant tenant)
{
_tenant = tenant;
}
void DeploySprocket()
{
var tenantName = _tenant.Name;
// Do stuff with tenantName
}
}
В этот момент я начинаю сомневаться. Хотя поначалу это казалось фантастической идеей, я понял, что не уверен, когда прекратить добавлять дополнительные «зависимости». Как мне решить, что должно быть зависимостью, а что — параметром?
Подробнее здесь: https://stackoverflow.com/questions/228 ... ependencie
Мобильная версия