【问题标题】:WPF C# and proper Architecture [closed]WPF C# 和适当的架构 [关闭]
【发布时间】:2018-10-18 06:36:00
【问题描述】:

我一直在尝试实现我认为非常基本的面向学校、班级和学生的 OOP 实现。

在这种情况下,我正在与一个单一的学校合作,其中包含一个独特班级的列表,每个班级都包含一个独特的学生列表(每所学校只有一个名为 Jack/Amber/Paul 的学生,每个学生只上一节课)。

这很容易实现。当我尝试制作可编辑的 WPF 时,我的担忧出现了。

我想创建一个 WPF,允许用户创建班级和学生,修改有关他们的数据,并删除他们。我的问题是,我不知道它应该在层次结构中的哪个位置。

我不知道每个班级和学生是否应该控制他们自己的弹出窗口来编辑他们的对象,或者是否应该有一个控制器来管理从学校开始的所有事情(似乎有点过头了)。

Static class SCHOOL()
{
    List<CLASS> classes = new List<CLASS>();


}

public class CLASS()
{
    List<STUDENT> classes = new List<STUDNET>();
}

public class STUDENT()
{
    public STUDNET()
    {
        /* Open POP-UP which gives the user the
        ability to set the name, gpa, etc... of the student */
    }

    public void modifyData()
    {
        /* Open POP-UP which gives the user 
        the ability to set the name, gpa, etc... of the student */
    }
}

我的方法正确吗?

【问题讨论】:

  • 学生可以编辑自己的数据吗? (并摆脱它)
  • @Jimenemex 在这种情况下是不相关的。用户添加所需的所有内容后,所有数据将输出到 JSON 文件。

标签: c# wpf oop architecture


【解决方案1】:

您并没有真正向我们提供足够的信息来说明您要完全评论的内容,但您的代码表明您的方法肯定有问题。

SchoolStudent 这样的类应该具有任何编辑、弹出窗口(我假设您的意思是详细信息窗口)等知识。模型类应该只包含与类本身特别相关的数据(例如公共和私有变量)和行为(方法)。例如,如果Class 班级有一个学生列表的公共属性,您可以添加一个方法来返回参加该班级的学生人数。尽管这个例子有点无意义,但它可以证明类的行为应该只与模型相关。

相比之下,编辑数据的方法(例如弹出窗口)是特定于使用该类的应用程序的。你不想让全班知道。

希望对您有所帮助。

顺便说一下,你的代码上有几个小 cmets...

  • 通用标准是类名和公共方法/属性使用 CamelCase,例如SchoolStudent 等。大写是非标准的,应避免使用

  • Class 是一个真的错误的类名称选择,因为它是一个保留字(小写),可能会引起混淆。

【讨论】:

  • @jcrash 我回答你的问题了吗?如果是,请接受。如果没有,请告诉我您是否需要了解其他任何信息
猜你喜欢
  • 2013-03-13
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多