テーブル レイアウトで行を作成するクラスがあります。行の作成は、データとメタデータに依存します。メタデータは可視性プロパティの表示/非表示などのように各行で同じであるため、メタデータ プロパティを静的として作成しinitWidget
、 ofを使用して一度初期化しました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) {
// ...
}
私が思ったように、これは正しいアプローチではありません。誰かがこのクラスを見たときのパターンとして、それが1つの行を作成することを理解するためです。私は最初に電話したくありませんinitWidget
。必要な各パラメーターをコンストラクターでのみ渡したい
public RowWidget(DataRawType dataRawType,
Data data,
Data parentData,
Form form,
HashMap<Long, ContractorPermissionEnum> formModePermissionMap,
GridMode gridMode,
boolean isApplied,
boolean isChildExist,
boolean isChildAttachment) {
// ...
}
しかし、これにより、コンストラクターには引数がありません。コンストラクターに5つ以上のパラメーターがあるのも悪いパターンだと思います。
誰かが私に提案していますか:
- 別のインスタンスで必要な同じプロパティを持つクラスを構築する方法は?
注:これは静的のみで可能であることは知っていますが、静的を使用したくありません。
- すべてのインスタンスに対してデフォルトの修正プロパティを持つクラスを構築する最良の方法は何ですか?
注:それを達成するために別のクラスを作成したくありません。または任意のゲッター/セッター メソッド。
前もって感謝します。