この度は、「あるクラスのメソッドを、それぞれ別のソースファイルで定義することの是非」について皆様の意見を頂戴したく参りました。
ただ今、C++でゲームの「自分の好きなスキルを選んで装備、登録する」というタスクを作っております。
非同期読み込みを用いて「NowLoading...」画面を演出できるようにしているのですが、非同期読み込みの完了待ちのコードが不本意にも大きくなってしまい、ソースファイルのコードを追いにくくなってしまいました。
そこで、「このゲームタスクのクラスの非同期読み込み中の処理と、読み込み完了後の処理を別々のファイルに記述したらいいのではないか」と考えました。しかし今まで「ヘッダファイルとソースファイルは1対1」を基本としてきたので、果たしてこの方法はいかがなものなのか?スタンダードから逸脱しているのか?と不安になった次第です。
以下はその例のコードです。
//----------------------Sample.h----------------------
class CSampleGameTask
{
void SampleMethod1( void );
void SampleMethod2( void );
};
//----------------------Sample1.cpp----------------------
#include "Sample.h"
void CSampleGameTask::SampleMethod1( void )
{
// 何らかの大きな行数にわたる処理
}
//----------------------Sample2.cpp----------------------
#include "Sample.h"
void CSampleGameTask::SampleMethod2( void )
{
// 何らかの大きな行数にわたる処理
}
例えば
・全く問題無い。スタンダードから逸脱もしていない。
・動作に問題はないが、お勧めはしない。
・動作に支障が出る可能性があるので、この方法をとらないことを強くお勧めする。
・何らかの設計思想の観点から、この方法はとるべきではない。
・そもそもこうなる設計がおかしい。この方法の如何は置いといて、まず設計を見直せ。
などなど、賛否とその理由をお聞かせくださると幸いです。