在OOP中,哪种代码设计更可取:方法中的行为还是构造函数中的行为?

问题描述 投票:0回答:1

在面向对象程序设计(OOP)中,我们通常使用一个类来处理参数并基于该参数输出某些内容。在这种情况下,我宁愿使用一种方法来执行所需的行为,而不是在构造函数中执行该行为,然后再存储最终状态,但是我的某些同事不同意这一点(因为最终结果始终是相同)。我认为这是一种更好的编程方式,但是我不能证明为什么我们应该采用这种风格。

示例:

我更喜欢这样编码:

class Number {

  public constructor(Integer number) {
      this.number = number;
  }

  public Integer doubleIt(): {
    return 2 * this.number;
  }
}

而不是

class Number {

  public constructor(Integer number) {
      this.double = number * 2;
  }

  public Integer doubleIt(): {
    return this.double;
  }
}

这是一种更好的编码方式吗?如果是,那么在讨论中应该使用哪些参数来证明它更好?

oop coding-style code-design
1个回答
0
投票

我不确定您要问什么。但是如果我理解你是对的。在第一种方法中,无需更改即存储了主值,该值是构造函数的真实定义。几乎在构造函数中,您仅应检查参数的值是否在可接受的范围内,但更改参数不是真正的动作。假设您决定以后再向此类添加另一个函数,如TrippleIt(),则更改主值应对此操作造成错误。希望是有用的:)

© www.soinside.com 2019 - 2024. All rights reserved.