Featured image of post コードシェフの仕込み帳【Composite】コースの中にコースがあっても〜単品とセットを if で分ける料金計算を、同じ顔で合計する〜

コードシェフの仕込み帳【Composite】コースの中にコースがあっても〜単品とセットを if で分ける料金計算を、同じ顔で合計する〜

単品とコースを if で分けて計算し、コースの中にコースが入ると合計が崩れるコードを、Compositeパターンで整理します。PerlとMooで単品もコースも同じ顔で扱い、合計を再帰的に求める設計へ。仕組みから丁寧に解説します。

Featured image of post コードシェフの仕込み帳【Decorator】包んで一味足す〜トッピングのたびにフラグが増えるコードを、積み重ね可能な部品で整理する〜

コードシェフの仕込み帳【Decorator】包んで一味足す〜トッピングのたびにフラグが増えるコードを、積み重ね可能な部品で整理する〜

トッピング追加のたびにcostとdescribeの2か所修正が必要になるコードを、Decoratorパターンで整理します。PerlとMooで修正箇所を1クラスに同居させ、既存コードを変えずに追加できる設計へ。仕組みから丁寧に解説します。

Featured image of post コードシェフの仕込み帳【Factory Method】伝票は窓口に渡すだけでいい〜`new` する判断を呼び出し側から切り離し、追加が担当窓口の新設だけで済む設計へ〜

コードシェフの仕込み帳【Factory Method】伝票は窓口に渡すだけでいい〜`new` する判断を呼び出し側から切り離し、追加が担当窓口の新設だけで済む設計へ〜

通知の生成コードが複数サービスに散在し修正漏れが起きるコードを、Factory Methodパターンで整理します。PerlとMooで生成の判断を呼び出し側から切り離す設計へ。仕組みから丁寧に解説します。

Featured image of post コードシェフの仕込み帳【Template Method】仕込み帳を三冊書くな〜コピペした手順の修正漏れを、親クラスの骨格で一本化する〜

コードシェフの仕込み帳【Template Method】仕込み帳を三冊書くな〜コピペした手順の修正漏れを、親クラスの骨格で一本化する〜

日報生成クラス3種が同じ骨格をコピペで持ち、修正漏れが起きるコードを、Template Methodパターンで整理します。PerlとMooで骨格を親クラスに一本化し、変わる部分だけサブクラスに任せる設計へ。仕組みから丁寧に解説します。