Open hirokisan opened 4 years ago
abstract factory はfactory生成の柔軟化 factory method はfactory内部処理の柔軟化
template method pattern
xxx { before() process() after() }
Run { xxx.before() xxx.process() xxx.after() }
みたいにすれば、柔軟性のある実装がイメージしやすい
template method の参考ソース見つけた
https://gihyo.jp/dev/serial/01/practical-programming-with-processing/0026
prototypeパターンはインスタンスをコピーして活用することで、最初から生成する手間を省けるという感じ
iteratorパターンでは集約オブジェクトを走査して特定の処理をさせたいと。その場合に集約オブジェクトの個別オブジェクトが一定のインターフェイスを満たしていて欲しいというような話もあるが、最初から最後までを走査に柔軟性を持たせたいという話。
走査に柔軟性を持たせるために、走査のためにiteratorインターフェイスを用意して実装する。集約オブジェクトであるaggregateインターフェイスはiteratorを生成するメソッドを用意する。
関数の中で集約オブジェクトを生成して、その集約オブジェクトの構成オブジェクトを走査して一定の処理をさせたい時に、関数側でロジックを書くのではなくて、集約オブジェクト側にロジックを描こうという話かも。
mediatorは連携し合うオブジェクトの中央に配置して、オブジェクト間の動作調整を行う存在。状態の確認役という感じ?
各オブジェクトはmediatorに確認して処理を決める。
mementoは状態の保存と復元
💭 template methodは継承を利用するみたいで、golangには継承という概念がないようなのでstrategyとの差分がわかりにくかったりするのかもしれない。結局のところ設計パターンをそのまま適用するという話ではないので、そんなに厳密に気にしなくてもよさそうではある。
概要
メモ置き場