【问题标题】:Tips for designing Properties?设计属性的技巧?
【发布时间】:2009-07-27 15:18:46
【问题描述】:

任何人都可以为设计和实施好的属性提供一些指导吗?我关心以下方面:

  • 副作用
  • 互斥性
  • 并发
  • 对称性和可逆性
  • 错误处理/异常

指向回答这些主题的现有文章会很棒。我不是在寻求 WPF 依赖属性方面的帮助。

【问题讨论】:

    标签: properties oop


    【解决方案1】:

    作为一项规则,除了可能的一些边界检查和类型检查(取决于语言)之外,属性不应包含几乎任何逻辑。因此,除了错误处理/异常之外,列表中的每个项目都不应该是实现属性时的因素。

    W.R.T 错误处理,从属性中抛出异常是绝对可以的(即当调用块试图将属性设置为无效值时)。此外,尝试解析数据时,使用 try...catch 语句是合适的。

    这方面的一个例子是在 Web 应用程序中使用属性隐藏请求参数:

        public int UserId
        {
              get {
                   string x = Request["userid"];
                      int userid = -1;
                      if (!int.TryParse(x, out userid))
                          throw new ApplicationException("UserID must be a valid integer");
    
                      return userid;
                  }
        }
    

    这是一个有点做作和简化的例子,但我希望它能说明这一点。在实际应用程序中,您可能希望使用不同的错误处理和/或解析方法来检查 ID 的有效范围等,这一切都取决于您的具体情况。

    属性的wikipedia entry 也可能是了解更多信息的好地方

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-25
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多