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

本文关键字:代码 项目 之间 | 更新日期: 2023-09-27 18:21:53

我正在尝试实现一个基于网页的报告。网页在一个项目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;

需要移除。

这里的最佳解决方案是什么?

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

看起来像是适配器模式的经典案例。

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

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

如果你做不到,那就把它留下吧。如果你发布了所有的代码,那么它实际上并没有那么相似。