假设一个 Car Validator 和许多读取其属性以验证它们的方法。因此,构造它的最佳方式是使 Car 成为实例字段。
两种制作方法:
1)创建一个以 Car 作为参数的构造函数,然后调用 validate()。
2)删除所有构造函数,而是将 Car 作为参数传递给 validate 方法:validate(Car car)。
如果我们想象这个验证器必须不断地验证,比如说 500 辆汽车。
使用1)方法,必须实例化 500 个验证器对象……即使垃圾收集器的工作做得非常好,它似乎也不是最佳实践。好处是 Car 字段的初始化是由构造函数 => 进行的,所以更自然。
使用2)方法,我们避免了1)的缺点,但是我们必须在方法 validate 中初始化 Car 字段,这意味着在对象构造之后。这被认为是一种好习惯吗?实际上,只有 validate 方法使用 Car 字段,此外,只有 validate 方法不是私有的。
当然,还有第三种方法可以避免所有疑虑=>将 Car 从 validate 方法传递给每个私有方法……但我觉得这很丑陋……
我应该选择三种方法中的哪一种?