【问题标题】:Empty class method implementation空类方法实现
【发布时间】:2014-03-09 20:40:46
【问题描述】:

我用一些数据成员、setter 和 getter 方法定义了一个类 Example:

class Example
{
     private:
        int  variable_A;

     public:
        void set_A_value(int input)
        {
            variable_A = input;
        }
        int get_A_value()
        {
            return variable_A;
        }
}

稍后,我创建类实例并在其他源代码文件中调用 setter 和 getter 方法。

如果之后我决定从类 Example 中删除 variable_A,是否将 getter 和 setter 方法的实现留空,这样我们就不必从其他源文件中删除代码?

【问题讨论】:

    标签: c++ class methods


    【解决方案1】:

    很难说,因为您没有提供任何上下文,但我猜您正在做一些不好的面向对象设计。

    Getter 和setter 应该访问类的概念属性,而不是它的物理成员。如果你为每个私有变量创建一个 getter 和一个 setter,那么它就违背了封装的全部目的。

    variable_A 要么存储每个对象的概念属性——在这种情况下,删除它实际上会改变类的语义(在这种情况下,无论如何都必须重写依赖于它的代码)——或者它不是,而是构成一个更大功能的一部分,可以以不涉及variable_A的方式重写——在这种情况下,首先不应该有getter和setter。

    【讨论】:

      【解决方案2】:

      在代码中保留未使用的变量不是一个好习惯。可能会给读者带来困惑。但是,如果变量或函数在某处被使用,删除它们肯定会出错。如果它们没有被使用,那么你可以给这项工作最低优先级。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-12
        • 2021-11-09
        • 2021-09-13
        • 2014-06-15
        相关资源
        最近更新 更多