【发布时间】:2011-05-02 16:12:25
【问题描述】:
这里有一些代码使用参数类来包含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;
}
}
更新: 我知道参数对象不是反模式。根据我的经验,参数对象属性是相关的。这是我试图找到的可能的反模式。设置所有三个属性没有意义。
【问题讨论】:
-
使用参数类不是反模式。
-
谢谢,我已经知道了。我已经更新了我的问题,以减少对此的困惑。
标签: c# design-patterns anti-patterns parameter-object