関心の分離(Separation of concerns)
関心の分離はプログラムを個別のセクションに分割するための考え方のひとつです。それぞれのセクションへの分割は、プログラムのコードに影響する情報、すなわち関心によって導かれます。関心は、アプリケーションのハードウェア詳細のような一般的なことであったり、インスタンス化するクラス名のような特別なことであったりします。関心の分離を具現化したプログラムをモジュラープログラムといいます。モジュール化は、明確に定義されたインターフェイスを持つコードのセクション内に情報をカプセル化することで実現されます。
Pythonにおいて、関心の分離を実現する仕組みを考えてみます。
Pythonでは、セクションへの分割をおこなう手段として、クラス、モジュール、パッケージが挙げられます。関心の分離は、階層的に構造化することが必要である場合が多く、これらのセクション分割手段を用いることで、階層化が可能となります。
<Sample>
モジュール(*.py)をディレクトリに集め、__init__.py を付加してパッケージを構成します。
#Mobility package
.....\mobility
|------------ __init__.py
|------------ motor_vehicle.py
|------------ bicycle.py
クラスを集約し、モジュールを構成します。
#Motor vehicle module
class wheel:
pass
class engine:
pass
class frame:
pass
class body:
pass
#bicycle module
class wheel:
pass
class frame:
pass
<参考>
https://en.wikipedia.org/wiki/Separation_of_concerns#Implementation