假设我有非常基本的任务类,如下所示:
public class Task
{
string Title { get; set; }
}
现在我想添加Planning"行为"到某些我的任务。显然我必须有类似的东西:
public interface IPlannable
{
public void CalculatePlan();
public DateTime Start { get; }
public DateTime Finish { get; }
}
和两个具体算法,每个算法都有不同的输入参数:
public class PlanStrategyA : IPlannable
{
private int parameter1;
private int parameter2;
private DateTime start;
private DateTime finish;
public PlanStrategyA(int p1, int p2)
{
parameter1 = p1;
parameter2 = p2;
}
public void CalculatePlan()
{
// ... uses parameter1 & parameter2
// ... to calculate start and finish
}
public DateTime Start { get { return this.start; } }
public DateTime Finish { get { return this.finish; } }
}
public class PlanStrategyB : IPlannable
{
public int parameter3;
// ... the rest is similar to PlanningStrategyA
}
问题是:
什么是最佳设计模式,用于将基本任务类连接到具体的规划策略作为OPTION,这意味着并非所有任务都需要进行规划,即。有计划行为吗?
用户应该有可能"促进"要计划的任务,以及"删除"来自特定任务的这种行为。
如何通过EF或其他ORM持久保存到数据库,特别是从数据库中读取时?哪种模式最适合从DB读取并创建我的任务对象?
答案 0 :(得分:0)
这里似乎有2个不同的问题。 一个是可计划任务的策略算法 - 您可以使用Strategy pattern来处理此问题。 关于不可计划的任务,我看到了两种可能的方法:
另一个是每个任务的一组可能行为。这可以通过Composite pattern解决。没有行为也是一种行为。