Command Pattern in Python
Command Pattern in Pythonを、編集してオンライン実行できる実践例で学びます。
Command Patternとは?
Command Pattern in Pythonを、編集してオンライン実行できる実践例で学びます。
どのような場面で使う?
- 実績のある構造を使って、繰り返し発生するオブジェクト設計の問題を解決します。
- 責務を分離し、コードを拡張・テストしやすくします。
- チームでアーキテクチャを議論するときに共通の設計用語を使います。
サンプルコード
main.py
class Light:
# Command: package a request as an object for later execution.
def on(self): return "Light on"
def off(self): return "Light off"
class LightCommand:
def __init__(self, light, action):
self.light, self.action = light, action
def execute(self):
# Store a request as data that can be invoked later.
return getattr(self.light, self.action)()
light = Light()
for command in [LightCommand(light, "on"), LightCommand(light, "off")]:
print(command.execute())
期待される出力
Light on
Light off
仕組み
この例ではCommand Pattern in Pythonを説明します。入力値を変更してコードの動作を確認してください。
値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。
練習問題
入力値と境界ケースを変更し、より大きなデータでも動作を確認してください。
- パターンの構造を保ったまま、サンプルの対象領域を置き換えてください。
- パターンをより単純な実装と比較し、トレードオフを説明してください。
- 別の実装を追加する前に、各参加要素のテストを書いてください。