私は現在、コースワーク用に作成しているアプリケーションのクラスを設計しています。ベースから派生したクラスペアであるかのように聞こえ、実際に2つのメンバー変数を共有する、2つのクラスがあります。私の問題は、それぞれに7つのメンバー変数があり、操作はありません。
これらのクラスの構造の理由は、RSSリーダーを構築しており、これら2つのクラスにフィードのデータを保持させる予定であるためです。1つ目は、フィード自体のデータ(たとえば、ソースURL、ローカルストレージ上のrss.xmlファイルの場所、フィードが最後に更新された日時など)を保持します。2つ目は、フィード内に含まれる記事に関する情報を保持します。記事を時系列で並べ替えるために使用される、発行日時や発行日に基づく整数インデックスなどのフィード。
class feed
{
string title;
string description;
string feed_url;
string local_location;
string channel;
bool feed_is_changed; // This is a flag that will be raised and lowered
// when the feeds are being refreshed
double last_updated; // The last update date/time will be converted to a
//standardised double value
}
class feed_item
{
string title;
string description;
double pub_time;
double pub_time_in_sec; // I'm separating the seconds so they can be used
// for a 'sub-index' when there are multiple feeds with the same pubtime
// (there are restrictions on the data types we are allowed to use
// (concocting work-arounds will aid in understanding, etc))
double pub_date;
int pub_year;
int order_in_list; // The index that will be calculated from pub_time,
// pub_date, etc
}
上記のコードは完全ではありません。現在、変数と関数のみを識別しています。プライベート/パブリックビットは、それらが完成すると表示されます。上記のコードからわかるように、共有されている2つの変数はタイトルと説明だけです。
それらをエンティティベースのペアにして、5つの無関係な変数を非アクティブ化するだけの価値があるのか、完全に別個のクラスにする方が効率的であるのか、それとも完全に状況に応じた懸念であるのか、そして議論できるのかどうかはわかりません。どちらにしても。私の懸念は、コードの保守とスケーリングの両方が困難になる可能性があることですが、いずれかの方法に固有の実行オーバーヘッドが存在する可能性があることです。これについての考えやアドバイスをいただければ幸いです。