委譲
委譲(Delegation)は、オブジェクト指向プログラミング(OOP)において、一つのオブジェクトが別のオブジェクトに一部のタスクや責任を移譲するプロセスを指します。委譲は、コードの再利用とモジュール化を促進し、オブジェクト間の結合度を弱めるのに役立ちます。また、特に継承に比べて柔軟性が高い設計パターンです。
以下は、委譲の例を示すPythonコードの簡単な例です:
python
class LightBulb: def turn_on(self): print("Light Bulb is ON") def turn_off(self): print("Light Bulb is OFF") class Switch: def __init__(self, bulb): self.bulb = bulb def operate(self): if self.bulb is not None: print("Switch is operating the Light Bulb.") self.bulb.turn_on() def disconnect(self): self.bulb = None # LightBulbインスタンスとSwitchインスタンスを作成 bulb = LightBulb() switch = Switch(bulb) # スイッチを操作して電球をオンにする switch.operate()
この例では、LightBulb クラスが照明を制御するためのメソッドを提供し、Switch クラスが電球を制御するためのメソッドを提供します。Switch クラスはコンストラクタで LightBulb オブジェクトを受け取り、そのオブジェクトに操作を委譲します。
委譲により、Switch クラスは LightBulb クラスの詳細な実装を知る必要がなく、 LightBulb クラスの変更に影響を受けずに再利用できます。このような設計により、コードの保守性が向上し、部品の交換や変更が容易に行えるようになります。
委譲は、特に「HAS-A」の関係が成り立つ場合に有用です。つまり、一つのオブジェクトが他のオブジェクトを所有または利用している場合に、委譲は適切なアプローチとなります。

ディスカッション
コメント一覧
まだ、コメントがありません