テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その7.亜神誕生~

前回までテーブル間の転記について、色々とあれこれと、作っては直しを
繰り返してきた。
infoment.hatenablog.com
今日は、今まで作ってきたマクロのクラス化に関するお話。
f:id:Infoment:20210808172735p:plain
今まで似たような機能のプロシージャを作り溜めるたび、クラスモジュールに
まとめてきた。今回もそのつもりだったのだが、ここで悩ましい問題が発生。

それは、作成したマクロが別のクラスモジュールのメソッドを使用している
ため、二つのクラスモジュールをペアで使用しなければならないということ。
f:id:Infoment:20210808173326p:plain

ここで考えた選択肢が、以下の二つだ。

1. 二つのクラスモジュールを、必ずペアで使う。
機能別に二つのクラスモジュールに切り分けられているため、解り易い。
一方、ペアで使うことを知らなければ、クラスモジュールの「移植漏れ」が
発生する恐れがある。なにより、毎回二つインポートするのは面倒くさい。


2. 集合クラスに、今回作成したマクロを全て統合する。
インポートするクラスモジュールが一つしかないため、「移植漏れ」は起きない。
しかし「集合」と「テーブルの転記」は、機能的に全く関係がない。複数の異なる
機能を、一つのクラスモジュールに押し込めてよいものか。


設計の一部分(クラス)に、過剰に機能を集中させることを、「神オブジェクト」
「神クラス」と呼ぶそうな。
ja.wikipedia.org
今回の規模で神を名乗るなど烏滸がましく、気にすることなどないのかも。
しかし一般的に否定されるアンチパターンに手を染めるのは、それはそれで
躊躇われる。

さて、どうしたものか・・・。

かなり悩んだが、今回は選択肢2.を採択し、 ↓ こちらに統合することとした。
※統合済み。
infoment.hatenablog.com

繰返しになるが、この程度の規模で神のクラスを名乗るなど烏滸がましい。
良くて亜神(亜:上位や主たるものに次ぐ、という意味がある)どまりの
マチュアクラスといったところか。

ということで次回から少しだけ、このクラスモジュールの使用例をご紹介。

参考まで。