如何在项目之间重用几乎相同的代码?

时间:2012-01-27 19:14:20

标签: c# asp.net architecture

我正在尝试实施基于网页的报告。该网页位于一个项目MyProject.Web中,该报告位于MyProject.Reports项目中。在这两种情况下,我想显示相同的控件元素(第三方图表控件)。 Reports项目使用第三方图表控件略有不同的实现(意味着大多数成员都兼容)。几乎所有代码都可以在两个项目之间进行复制粘贴。但是,以下代码在Reports项目中不兼容:

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

需要替换为:

chart.Borders = BorderSide.None;

此:

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

需要替换为:

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

最后:

chart.Padding.All = 0;

需要删除。

这里有什么最好的解决方案?

2 个答案:

答案 0 :(得分:4)

看起来像adapter pattern的经典案例。

基本上,您可以封装不同的部分,只是以不同方式实现它们。您可以创建一个MyAwesomeChart类,也可以创建类似MyAwesomeChartSetter的类。

答案 1 :(得分:1)

在这种情况下,最好的解决方案是在两个项目中使用相同的实现。

如果你不能那样做,那就离开吧。如果您发布了所有代码,那么实际上并不是那么相似。