Goによるデザインパターン

Goによるデザインパターン - Strategy パターン (2)

Strategy設計の失敗 前回で、HTMLとテキストでレポートを出力するコードを書きました。その中でFormatter interfaceを定義し、その具象型としてPlainTextFormatter HTMLFormatterを定義するというStrategyパターンを採用しました。 しかし、気になる点が無い…

Goのinterface - 使う側で定義する

Goのinterfaceは「使う側」が定義するもの 前回Formatter interface、Formatterを使ってレポートを出力するReport struct、 Formatterの実装PlainTextFormatterとHTMLFormatterを定義しました。 type Formatter interface { OutputStart() OutputHead(text s…

Goによるデザインパターン - Strategy パターン (1)

例:レポートを出力するクラス。 レポートをHTMLで出力するstruct*1を作ったあなた。上司からプレーンテキストでも出力してくれと言われてしまいました。とりあえず、フォーマットを引数で指定するようにしたのですが・・・ *1:レポートの内容はフィクション…