组织抽象层次

时间:2013-01-17 14:20:15

标签: c# asp.net

我有一个带表的SQL Server数据库。

除此之外,我为每个使用LINQ的表都有一个类,并且具有Add,Remove,Get,Update功能。

最重要的是,我希望有更多项目特定的方法。

例如,我最高级别的功能之一是将任务分配给员工。

我的想法是拥有另一组具有此功能的类,例如,初始的Task类具有:

    public static IEnumerable<Task> GetAll(Schedule schedule)
    {
        KezberPMDBDataContext db = new KezberPMDBDataContext();
        return from p in db.Tasks
               where p.ScheduleID == schedule.ScheduleID
               select p;
    }

例如,要分配任务,我需要GetUnscheduledTasks。我可以:

    public static IEnumerable<Task> GetUnscheduled()
    {
       return Data.Tasks.GetAll(emptySchedule);
    }

我基本上试图拥有:中等水平的低水平交换数据,以及中等水平的顶级交换数据。

我应该如何组织或重构我的代码以保持其清洁和模块化?

由于

1 个答案:

答案 0 :(得分:1)

所以你有类似......

SQL&gt; “ORM层”&gt;业务层。 BL有例程:

“将任务分配给员工”

如果我们结束你的帖子“试图用中等水平......和顶级水平进行低水平的交换数据......”。我建议你看一下MVC模式。 Controller充当模型和视图之间的中间层。

“具有此功能的另一组类”。我假设你的意思是另一组类来协助Controller。我倾向于将这些类称为“辅助类”,直到我有足够的关系来定义一个不太抽象的名称。除了我的一般MVC / MVVM / etc模式之外,我倾向于包括所述抽象。