Вот некоторый код, который использует класс параметров, чтобы содержать возможные параметры для метода Show()
.Значения в этом FooOption
классе не очень связаны.Вы можете увидеть это, посмотрев реализацию Show()
ниже.Я знаю, что это плохой код, но есть ли какие-либо анти-паттерны, связанные с этим?
class FooOptions {
public int? Id { get; set; }
public string BazContext { get; set; }
public int? BazId { get; set; }
}
class BarMgr {
public Bar Show(FooOptions options) {
if (options == null)
options = new FooOptions();
if (options.Id.HasValue)
return svc.GetBar(options.Id.Value);
if (!string.IsNullOrEmpty(options.BazContext) && options.BazId.HasValue)
return svc.GetBar(options.BazContext, options.BazId.Value);
return null;
}
}
Обновление: я знаю, что объекты параметров не являются анти-паттернами.По моему опыту, свойства объекта параметров связаны.Это возможный анти-паттерн, который я пытаюсь найти.установка всех трех свойств не имеет смысла.