はじめまして。VCの初心者です。皆様よろしくお願いいたします。
VCで大量の関数(100個ぐらい)扱う処理をしようとします。
そして、下記の二つの方法があるかと思っていますが、その処理能力の違いがよく分かりません。また、別の方法はないでしょうか?
方法1、ヘッダファイルには宣言のみを書き、関数の実装は複数のcppファイルに分散して書く。
class A{
//初期処理:データ読み込み処理の関数
getData();
//ある処理(例:Date)の関数郡
f_Date1();
f_Date2();
:
f_Daten();
//ある処理(例:Time)の関数郡
f_Teim1();
f_Teim2();
:
f_Teimn();
//後処理:データ出力処理の関数
setData();
}
方法2、クラスを分ける(ヘッダファイルを分けて関数を宣言する)。
class A0{
//データ読み込み処理の関数郡
getData();
//データ出力処理の関数郡
setData();
}
class A1{
//ある処理(Date)の関数郡
f_Date1();
f_Date2();
:
f_Daten();
}
class A2{
//ある処理(Date)の関数郡
f_Date1();
f_Date2();
:
f_Daten();
}
前者も後者も処理能力としては変わらないです。
ただ、後者は1つのファイルが小さくまとまる為見通しはよくなるけれど、
プログラムの作成は面倒になるかもしれませんね。
結局は、100個の関数の利用法によると思いますが……
クラスはある機能のカプセル化だと私は認識しているので、
その機能を実現するのに100個の関数が必要だったら前者でいいし、
その機能はさらにA0, A1, ... ,An まで細分化できるのだったら
後者でもいいですし。
クラスの見通しをよくする為だったら、
細分化した機能ごとに A0, ... , An のクラスを定義して、
それを統合するクラス A というのを作る、という手もあると思います。
あと、定義は1つのクラスだけど、実装の実体は複数のファイル、
というのもあるかも。
A.h の内容
-------------------------------
class A {
// ある処理の関数100個宣言
};
-------------------------------
A1.cpp の内容
-------------------------------
#include "A.h"
// ある処理の関数50個の実体
A::f_Date_1() { ... }
....
A::f_Date_n() { ... }
-------------------------------
A2.cpp の内容
-------------------------------
#include "A.h"
// ある処理の残り関数50個の実体
A::f_trim_1() { ... }
....
A::f_trim_n() { ... }
-------------------------------
TO:通りすがり 様
いろいろ教えてくださってありがとうございました。
ツイート | ![]() |