【问题标题】:POO Propperty getter / setter vs Function (Theory)POO 属性 getter/setter 与函数(理论)
【发布时间】:2014-07-04 08:11:54
【问题描述】:

如果 getter 最终是一个函数,为什么不只使用一个函数呢?我想在任何需要的时候强制使用该函数来设置/获取一个值,还有其他原因吗?

【问题讨论】:

    标签: function class oop properties getter


    【解决方案1】:

    属性仅用于提高可读性或简化 API,而不会破坏封装。例如,如果您有一个 Rectangle 类,并且您想将实例的宽度增加 10,而没有属性,您可以执行以下操作:

    rect.setWidth(rect.getWidth() + 10)
    

    虽然,使用属性,你可以写:

    rect.width += 10
    

    哪个更清楚。由于属性是函数,因此您可以进行所有需要的检查。此外,宽度是否实际存储在类中甚至都没有关系。也许矩形存储为一对点(即左上角和右下角),但属性会处理它。此外,您可以编写以不同方式访问相同数据的属性:例如,您可以拥有 widthheighttopbottomleftright 属性,以及所有这些属性会影响类的相同内部数据,但会使其更易于使用和更具可读性。

    【讨论】:

      【解决方案2】:

      getter 一个函数(就我所知的 POO 语言而言)。

      这个想法是将修改或获取属性的能力按类委托给仅一个函数,以防在应用 getter 或 setter 之前需要执行特殊检查。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-18
        • 2022-12-24
        • 1970-01-01
        • 1970-01-01
        • 2016-05-03
        • 1970-01-01
        相关资源
        最近更新 更多