20240830エクセルVBA オブジェクト指向備忘録 カナメとまでは言えません3(仮)今後の方針
<前書き>
エクセルVBAオブジェクト指向、初心者です。
VBA自体は、以前から使用していました。
オブジェクト指向というものがあることは、知っていましたが、ネットなどを見てもよく分からず、挫折した過去あり。
<以上前書き>
(素人なので間違っているかもしれません。汗。)
今回は、コードは書いていません。
ここ最近、クラス、オブジェクト指向をやってきて、思ったこととしたことの?備忘録(未確認・未確定メモ)です。
(素人なので間違っているかも。汗)
最近、作業時間がなく、忘れています。汗。
今後の方針:
というか、最近思うこと。(下位クラスと上位クラスのコーディングの書き方の分け方)
「クラスのプロパティ」なんかは、オブジェクト指向の一つの考え方ととして、
実世界を写すように具体的なプロパティでコーディングするように考えられていますが(あいまいな把握ですみません。)、
それは下位のクラスのことであって、上位に位置するマネジメント的なクラスは、どんどん抽象化した方がいい気がする。
(他に応用できるように。)
ここで抽象化するとは、「userform1」とか「textbox1」とか個別具体的な名称はなるべく置かない方がいいと言う意味です。
(その方がキレイな気がする。)
中位以上のレベルに具体的な名称が入ると、コードを理解する場合、ここのクラスもきちんと読まなくてはいけなくなるので、
可読性も落ちる気がする。
具体的な名称は、最下位のクラスか、最上位のモジュールに引数のようにしておくといいかもしれない。
また、中位以上のクラスは、機械的に、合理的に、工業製品的に(?)作った方がいい気がする。
同じ処理をまとめるとか。
(手続き型では、その都度、丁寧に、その場に応じて作成しました。
文章を書くように、文脈に合わせてコーディングしている気がします。(手作り感満載))
オブジェクト指向では、中位より上のクラスでは、もっと抽象的にコーディングする方がいいと思います。
ある意味、使い方・文脈がそこまで分からなくても、責務を果たせればいい。
責務を果たすのに、効率的な書き方をすればいい気がします。
(結合度も下がるハズ。)
その他、具体的なメッセージなどは、変数にして、一つのメッセージクラスにまとめたり、定数があれば、一つのクラスにいれたらいいかも。(最下位の具体的クラス。)
これが理想なのかな?(まだよく分からず。)
中位より上のクラスは、もっと汎用的にした方がいいのだろう。
機能を追加する度に、手続き型っぽくなってしまう。手続き型というか、「手作り型」という感じで、整理もなにもない・・・汗。
本当は、汎用的な部分を部品として持っておき、それらを使う構成にすべきなんだろうなあ・・・。