デザインパターンなるものを最近勉強しています。
有名なGOF本等を見ていますが、アホの私には、非常に難解ですね。。
負けませんけどね!
自分なりに表題のパターンを理解する為、読み砕きました。
読む⇒理解する⇒実装する⇒理解する⇒フローとか書いてみる⇒実装する⇒理解する。
こんな感じで、やっとなんとなく掴めた気がするので、覚書。
某サイトにこのように書いてました、
「AbstractFactory パターンとは、インスタンスの生成を専門に行うクラスを用意することで、
整合性を必要とされる一連のオブジェクト群を間違いなく生成するためのパターンです。」
今は、「そうですね。」と思いますが、初めは???となりました。
以下にOSとDBのセット環境を例にフローを記載してみました、
セットそのものを抽象クラスで作成して、そのまま縦に継承することで、
上記の内容を実現します。
こうすることで、呼び出し側ではWin、Lhelを指定して呼び出すことができて、
※簡単に入れ替えることができる。
OS.DB.特性という形で指定することで、
抽象クラス(手続き)だけを意識すれば使用することができるます。
※プロジェクトでの作業分担や統合管理に利点がある。
その他、Mainでnewを意識させないロジックにする等も可能ですね。
書いてて、やはり難解ですね。自分の理解度合いも微妙ですが、
伝えるのは、もっと難しい。