クラスのメソッドを複数のソースファイルに分けて定義することについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
山崎
記事: 2
登録日時: 14年前
住所: 北関東

クラスのメソッドを複数のソースファイルに分けて定義することについて

#1

投稿記事 by 山崎 » 12年前

 こんばんは。山崎と申します。
 この度は、「あるクラスのメソッドを、それぞれ別のソースファイルで定義することの是非」について皆様の意見を頂戴したく参りました。

 ただ今、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 )
{
	// 何らかの大きな行数にわたる処理
}
 上のコードのように「あるクラスのメソッドを複数のソースファイルに分けて定義する」ことについて、皆様がどうお考えになっているか聞かせて頂きたく思います。
 例えば
・全く問題無い。スタンダードから逸脱もしていない。
・動作に問題はないが、お勧めはしない。
・動作に支障が出る可能性があるので、この方法をとらないことを強くお勧めする。
・何らかの設計思想の観点から、この方法はとるべきではない。
・そもそもこうなる設計がおかしい。この方法の如何は置いといて、まず設計を見直せ。
などなど、賛否とその理由をお聞かせくださると幸いです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: クラスのメソッドを複数のソースファイルに分けて定義することについて

#2

投稿記事 by softya(ソフト屋) » 12年前

継承その他で何とか成ると思うので見なおしたほうが良いと思います。
クラスが大きくなって見渡しづらいのはろくな事にならないからです。
なんなら、読み込み待ちを管理するだけのクラスを作っても良いかと思います。

あと「非同期読み込みの完了待ちのコード」と言うのが大きのもアルゴリズム的な問題があるかも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
山崎
記事: 2
登録日時: 14年前
住所: 北関東

Re: クラスのメソッドを複数のソースファイルに分けて定義することについて

#3

投稿記事 by 山崎 » 12年前

softyaさん
ご回答誠にありがとうございます。
やはりコードが長すぎるのは頂けない状況ですよね・・・。
読み込み待ちだけを行うクラスも考えてはいたのですが、本格的に導入することも視野に入れていきたいと思います。
一旦、設計の見直しをじっくりしてみたいと思います。

閉鎖

“C言語何でも質問掲示板” へ戻る