当社のコア製品の一部は、さまざまなページ ウィジェットを利用する Web サイト CMS です。これらのウィジェットは、コンテンツの表示、製品の一覧表示、イベント登録の処理などを担当します。各ウィジェットは、基本ウィジェット クラスから派生したクラスによって表されます。ページをレンダリングするとき、サーバーはデータベースからページのウィジェットを取得し、正しいクラスのインスタンスを作成します。ファクトリーメソッドですよね?
Private Function WidgetFactory(typeId)
Dim oWidget
Select Case typeId
Case widgetType.ContentBlock
Set oWidget = New ContentWidget
Case widgetType.Registration
Set oWidget = New RegistrationWidget
Case widgetType.DocumentList
Set oWidget = New DocumentListWidget
Case widgetType.DocumentDisplay
End Select
Set WidgetFactory = oWidget
End Function
とにかく、これで問題ありませんが、時間の経過とともにウィジェットの種類の数が約 50 に増加したため、ファクトリ メソッドはかなり長くなります。新しいタイプのウィジェットを作成するたびに、メソッドにさらに数行追加しますが、これは最善の方法ではないかもしれないという小さな警告が頭の中で鳴り響きます。私はそのアラームを無視する傾向がありますが、大きくなっています。
それで、私はそれを間違っていますか?このシナリオを処理するより良い方法はありますか?