Function POO性能吸气剂/设置剂与功能(理论)

Function POO性能吸气剂/设置剂与功能(理论),function,class,oop,properties,getter,Function,Class,Oop,Properties,Getter,所以,如果getter最终是一个函数,为什么不只使用函数呢?我想在任何需要的时候强制使用该函数来设置/获取值,还有其他原因吗?getter是一个函数(据我所知) 这样做的目的是,在应用getter或setter之前需要执行特殊检查的情况下,按类将修改或获取属性的能力委托给一个函数。属性仅用于提高可读性或简化API,而不破坏封装。例如,如果您有一个Rectangle类,并且希望将实例的宽度增加10倍,而不使用属性,则可以执行以下操作: rect.setWidth(rect.getWidth() +

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

getter是一个函数(据我所知)


这样做的目的是,在应用getter或setter之前需要执行特殊检查的情况下,按类将修改或获取属性的能力委托给一个函数。

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

rect.setWidth(rect.getWidth() + 10)
而使用属性,您可以只编写:

rect.width += 10
这更清楚。因为属性是函数,所以可以执行所需的所有检查。此外,宽度是否实际存储在类中也无关紧要;可能矩形存储为一对点(即左上角和右下角),但属性将处理它。此外,您可以编写以不同方式访问相同数据的属性:例如,您可以有
宽度
高度
顶部
底部
左侧
右侧
属性,所有这些属性都会影响类的相同内部数据,但这将使它更易于使用,更具可读性