ふう、ようやくコンパイルエラーがなくなった...。
次にSong::Load()メソッドをいじります。
このメソッドは古い形式のファイルと、新しい形式のPSYファイルを読むメソッドです。
このメソッドはやたら長い(1000行超!)ので見通しが悪いため保守性が低いです。なので新しい形式を読む部分および古い形式を読む部分をIPsySongLoaderインターフェースの実装クラス(ローダクラス)として分離することにします。
そうすることで、新しいフォーマットにも対応しやすくなるのです。
IPsySongLoaderインターフェースはこんなものです。
/* IPsySongLoader Interface /
struct IPsySongLoader {
virtual void Load(RiffFile const riffFile,Song const song) = 0;
};
話の割にはたいしたことないインターフェースです。