擬似コード
この例は、ファクトリメソッドを使用して、クライアントコードを具体的なUIクラスに結合せずにクロスプラットフォームのUI要素を作成する方法を示しています。
基本ダイアログクラスは、さまざまなUI要素を使用してウィンドウをレンダリングします。さまざまなオペレーティングシステムでは、これらの要素は少し異なって見える場合がありますが、それでも一貫して動作するはずです。 WindowsのボタンはLinuxのボタンのままです。
ファクトリメソッドが機能するようになったときに、オペレーティングシステムごとにダイアログのロジックを書き直す必要はありません。基本ダイアログクラス内にボタンを生成するファクトリメソッドを宣言すると、後でファクトリメソッドからWindowsスタイルのボタンを返すダイアログサブクラスを作成できます。サブクラスは、ダイアログのコードのほとんどを基本クラスから継承しますが、ファクトリメソッドのおかげで、画面にWindowsのようなボタンをレンダリングできます。
このパターンが機能するには、基本ダイアログクラスが必要です。抽象ボタンを操作する:すべての具象ボタンが従う基本クラスまたはインターフェース。このようにして、ダイアログのコードは、どのタイプのボタンを使用しても機能し続けます。
もちろん、このアプローチを他のUI要素にも適用できます。ただし、ダイアログに新しいファクトリメソッドを追加するたびに、抽象ファクトリパターンに近づきます。恐れることはありません。このパターンについては後で説明します。