🐍
Pythonでデザインパターン実装 - 概要
はじめに
ネット記事、人生初投稿です。
育児休暇で少し時間ができたので、PythonでGoFデザインパターン23個を実装してみました。
GitHubリポジトリは↓
結城浩さん著の増補改訂版Java言語で学ぶデザインパターン入門を基に、独自にPython用に書き換えました。
そのため、アルゴリズムや詳細な処理については、こちらの書籍をご参照ください。
とてもわかりやすいです。最近、第3版が発売されたみたいですね。
実装してみて
いままで使ったことがなかったPythonの構文や記法を知ることができ、良い勉強になりました。
いつもと異なる視点から設計を考える良い機会になりました。
いくつか仕事でも使えそうかも、より良い設計ができるようになるかも、という気がしています。
実行例
Observerパターンを実装したプログラムの実行例です。
※スクリプトを実行していますが、対象となるパターンのpytestを実行しているだけです。
pytestといっても、ほとんどテストというより実行結果の出力として使っています。
使用ライブラリ
特筆すべきライブラリを記載しておきます。
pydantic
FastAPIも利用している、有名なライブラリですね。
Pythonは動的型付け言語ですが、より厳密に型を意識できるようにpydanticを極力使用するようにしました。
multimethod
overloadを実装しやすくするために使用してみました。
Pythonでoverloadを今回はじめて実装したので、もっと良いライブラリやもっと良い方法があるかもしれません。
Discussion