setX()方法名称是否仅适用于设置类属性X?
例如,我有一个类,其中输出是一个html表的字符串。在你可以调用getTable之前,你必须调用setTable(),它只查看其他属性并决定如何构造表。它实际上并不直接设置任何类属性 - 只会导致设置属性。当它被调用时,该类将构造strHtmlTable,但是你不能指定它。
因此,调用它setTable会破坏get和set属性接口的约定。
编辑:在这个特定的类中,在类知道构造表所需的一切之前,必须至少调用两个(总共8个可选的)其他方法。我选择将数据集作为单独的方法,而不是使用8个可选参数来混淆__construct(),我永远不会记住它的顺序。
答案 0 :(得分:1)
我建议generateTable()
而不是setTable()
。这提供了一种情况,即方法的名称清楚地表明它的作用。
但我可能仍会使用setTable()
方法来实际设置属性。理想情况下,您可以打开设置先前定义的表格的可能性,以获得更大的灵活性。
答案 1 :(得分:0)
是的,setX()主要用于设置字段X,但setX()除了直接分配给字段外,还可能需要运行一些额外的代码。将其用于其他事情可能会误导其他开发人员。
我肯定会建议不要使用公共的setTable(),并且可以说setTable()可以省略,或者只是一个未使用的私有方法,具体取决于你的要求。
听起来生成表的活动更像是对象上其他属性的视图,因此您可以考虑将其移动到对象上的私有方法,如generateHtmlTable()。这可以在构造期间(以及对象的更新时)完成,这样任何对getTable()的后续调用都将返回相应的HTML。