我很抱歉,但我不知道该怎么称呼这个帖子(如果你有更好的头衔,请在评论中告诉我)。
比如说你有以下Object
,其目的是创建Constructor
中指定数据的图表系列:
/**
* Helper to generate chart series
*/
public class ChartHelper
{
public System.Windows.Forms.DataVisualization.Charting.Chart ChartType { get; set; }
public String TimeType { get; set; }
private readonly List<IObject> _datalist;
private readonly TimeType _timeType;
private readonly DateTime _stopDate;
private readonly DateTime _startDate;
public ChartHelper(List<IObject> dataList, TimeType timeType, DateTime startDate, DateTime stopDate)
{
_startDate = startDate;
_stopDate = stopDate;
_datalist = dataList;
_timeType = timeType;
}
public System.Windows.Forms.DataVisualization.Charting.Chart GetChart()
{
CreateSeries(_startDate);
return ChartType;
}
private void CreateSeries(DateTime seriesTime)
{
//Do something
}
//More internal private methods
}
现在假设您有一个程序可以创建10个不同的Charts
但只有List<IObject> dataList
更改的值。
然后你可以做两件事之一:
ChartHelper
Objects
Object
并更改dataList
值这当然是一个例子,说明在开发过程中如何呈现问题(我已多次遇到此问题)
我的问题是,有没有一种设计模式可以帮助您解决这个问题?或者是否有一种对这些情况有用的最佳实践方法?我希望提高自己的技能,这对我来说很重要。
答案 0 :(得分:1)
如果只有数据不同,那么我建议使用同一个类并从中创建10个不同的对象。
但是,如果CreateSeries的实现因数据类型而异,那么这将是Strategy模式的候选者。在这种情况下,您将在界面后面提取系列的创建,并为不同类型的系列提供实现。然后,您还可以根据数据选择正确的策略并组成图表(帮助程序)。