2012-01-27 9 views
1

私はWebページに基づくレポートを実装しようとしています。 Webページは1つのプロジェクトMyProject.Webにあり、レポートはMyProject.Reportsプロジェクトにあります。どちらの場合も、私は同じコントロール要素(サードパーティのチャートコントロール)を表示したいと思います。 Reportsプロジェクトでは、サードパーティのチャートコントロールのわずかに異なる実装(ほとんどのメンバーが互換性があることを意味します)を使用します。ほとんどのコードを2つのプロジェクト間でコピー&ペーストすることができます。このプロジェクト間でほとんど同じコードを再利用する方法は?

chart.Borders = BorderSide.None; 

chart.Height = Unit.Pixel(300); // Unit type 
chart.Width = Unit.Pixel(700); // Unit type 

に置き換えする必要があります

chart.BorderOptions.Visible = false; // BorderOptions is not a member 

はと交換する必要があります。ただし、次のコードは、レポートプロジェクトには互換性がありません。

chart.Height = 300; // int type 
chart.Width = 700; // int type 

最後に:

chart.Padding.All = 0; 

を削除する必要があります。

ここで最善の解決策は何ですか?

答えて

4

adapter patternの古典的なケースのように見えます。

基本的に、異なる部分をカプセル化し、異なる部分のみを実装することができます。 MyAwesomeChartクラスを作成し、サブクラス化するか、MyAwesomeChartSetterのようにすることができます。

+0

私はそれをチェックアウトします。 –

1

この場合、最善の解決策は、両方のプロジェクトで同じ実装を使用することです。

できない場合は、そのままにしてください。すべてのコードを投稿した場合、実際にはそれほど類似していません。

+0

これは両方の実装を制御する第三者だからできません。これは、互換性のないコードの約1〜2%です。それ以外はうまく動作します。 –

関連する問題