我有一个在表格布局中创建行的类。行的创建取决于数据和元数据。由于元数据对于每一行都是相同的,例如显示/隐藏可见性属性等,所以我将元数据属性创建为静态并使用initWidget
.RowWidget
只是例子:
class RowWidget extends FlexTable{
public static void initWidget(Form form,
HashMap<Long, ContractorPermissionEnum> formModePermissionMap,
GridMode gridMode,
boolean isApplied,
boolean isChildExist,
boolean isChildAttachment)
{
// ...
}
}
然后我为每个记录数据调用下面的构造函数。
public RowWidget(DataRawType dataRawType, Data data, Data parentData) {
// ...
}
正如我认为这不是正确的方法。因为当任何人看到这个类然后理解它会创建一行时,作为模式。我一开始不想打电话initWidget
。我只想在构造函数中传递每个必需的参数
public RowWidget(DataRawType dataRawType,
Data data,
Data parentData,
Form form,
HashMap<Long, ContractorPermissionEnum> formModePermissionMap,
GridMode gridMode,
boolean isApplied,
boolean isChildExist,
boolean isChildAttachment) {
// ...
}
但正因为如此,构造函数没有参数。而且我认为在构造函数中有 5+ 参数也是不好的模式。
有没有人建议我:
- 如何构造在另一个实例中具有相同属性的类?
注意:我知道这只能通过静态实现,但不想使用静态。
- 为所有实例设置一些默认修复属性的类的最佳构造方法是什么?
注意:我不想创建另一个类来实现它。或任何 getter/setter 方法。
提前致谢。