言語はC#を考えていますが、Javaなどでも構いません。

数種類のエクセルシートを、数種類の帳票に変換して出力するというツールをどう組むか迷っています。
いずれのエクセルシートも、全ての種類の帳票に変換可能です。

仮にエクセルシートがA, B, Cと、帳票がD, E, Fとあるとしたら、

エクセルシート抽象クラス
エクセルシートクラスA
エクセルシートクラスB
エクセルシートクラスC
帳票クラス抽象クラス
帳票クラスD
帳票クラスE
帳票クラスF


という風にクラスをつくった後、
「.xlsファイルから値を読み取り、メンバ変数に格納していくメソッド」を抽象クラスに定義し、
エクセルシートクラスA, B, Cにオーバーライドして実装させる。

そして、帳票クラス抽象クラスに、
「エクセルシートクラスのインスタンスのメンバーを帳票クラスのインスタンスに代入していく」メソッドを定義し、
引数違い(エクセルシートクラスA, B, C)でオーバーロードさせておく。

そして、帳票クラスD, E, Fにその中身を実装させる。


という風なものを考えてみましたが、皆さんならどのように組まれますか?