最近、訳があって
パーシャルクラスの使い道
を考えています。
パーシャルクラスは、宣言を複数に分けて記述することができるクラスです。
一般的なクラスをパーシャルクラスにするためには、クラスの宣言を partial キーワードで修飾します。
パーシャルクラスは、宣言を複数に分けて記述することができるため、複数のファイルに分けてクラスを記述することができます。
今は、コードジェネレートした結果として使用されていることが多いように思いますが、本来は、自分でもパーシャルクラス化することが簡単にできるのです。
そこで、パーシャルクラスを、可変性の高いコードと、不変性の高いコードに分けてファイルに保存してはどうかと考えました。
可変性の高いものと、不変性の高いものを分離する方法は、ソースコードに限らず、一般的に行われていことです。
次に、何を持って可変性が高いと言えるのかを考えてみました。
開発環境の変化という見方もありますし、テーブルの論理設計の変化という見方もあります。
ならば、それらをすべて別のファイルに分けて、フォルダに分けて管理してはどうかと考えました。
構造化プログラミングが 1 次元的なコードの分類で、オブジェクト指向が 2 次元的なコードの分類だとすれば、パーシャルクラスによるファイルの分類は、3 次元的なコードの分類だと言えるのではないかと思ったのです。
ということで、取りあえずは、データモデルに関する部分だけを分離することから初めてみようかな。