MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

C++によるデザインパターン14: Chain Of Responsibility パターン


Chain Of Responsibility パターン

Chain of Responsibilityパターンは、

段階的なクラス群を用いて

処理を実施するデザインパターンです。


具体的には、ある処理において、

まず初めに、一番元となるクラスが処理を試みて、

その処理を、このクラスでは実施出来ない場合には、

次のクラスに処理を実施させます。

そして、次のクラスも処理できない場合は、

そのまた次のクラスに処理を実施させます。

このように、クラスの責任(Responsibility)を

鎖(Chain)で繋いだような処理を行うのです。


このようにクラスをリスト型で繋いで処理することで、

段階的な処理を実施したい時に、

巨大なif-then文を使用しなくてよくなり、

また、新しいif-then処理をしたいときには、

新しいクラスを作成して、

リストに追加するだけで処理ができ、

他のクラスを変更しなくてよくなります。

つまり、ソフトの再利用性が向上させることができるのです。


C++によるサンプルコード

下記のGitHubページにて公開しています。

cpp/ChainOfResponsibility.cpp at master - AtsushiSakai/cpp

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com