我目前正在从事一个面向对象的设计项目,并且想知道是否有更好的方法来验证子类的变异器中的数据。
例如,我有一个 Home 类,其中包含子类 Apartment、Condo 和 House。在 Home 类中,我想包含子类共享的(私有)字段的修改器。假设其中一个字段是 squareFootage。有没有办法使 Home 中的 mutator 足够通用,以便子类可以为 squareFootage 设置自己的有效值,而不必完全覆盖 mutator?也就是说,我希望每个子类的 squareFootage 有不同的有效范围。
我尝试在 Home 中设置可能的范围值,然后在子类中覆盖它们。不幸的是, Home 中的 mutator 仍然从 Home 类而不是子类中获取。
因此,我采用了对突变体进行抽象的方法,但不幸的是,这会导致大量重复代码,因为我可以从字面上复制和粘贴每个子类中的突变体。
如果可能的话,我想让可能的范围值保持静态,我知道这可能通过反射来实现,但我真的很想避免在这个项目中使用它。