您的静态Validaton
方法对我来说似乎应该是对象的一部分。
假设你有一堂课Drink
public class Drink
{
private readonly string _name;
private readonly double _temperature;
public Drink(string name, double temperature)
{
_name = name;
_temperature = temperature;
}
}
您的业务逻辑将能够实例化各种饮料、7up、可乐等。你想确保一种饮料有合适的温度来饮用它,所以你需要一种Validate
方法。你可以按照你的方法:
public void TakeAZip()
{
if (Validation.HasAppropriateTemp)
{
// implement drink
}
}
'
静态类的替代品
这样你就很难依赖你的静态Validation
类。
或者,您可以使用依赖注入。
public void TakeAZip(ITemperatureValidator validator)
{
if (validator.HasAppropriateTemp)
{
// implement drink
}
}
如果更方便,您还可以选择Validator
通过构造函数传递
private readonly string _name;
private readonly double _temperature;
private ITemperatureValidator _validator;
public Drink(
string name,
double temperature,
ITemperatureValidator validator)
{
_name = name;
_temperature = temperature;
_validator = validator;
}
现在您可以模拟验证器的行为,并且可以将您的Drink
类与所有外部行为隔离开来。