Oop 考虑到纯OO,如何将scanario划分为对象?

Oop 考虑到纯OO,如何将scanario划分为对象?,oop,Oop,在这个场景中,我对如何制作对象感到困惑。 我正在使用IPhone应用程序 假设我有两个主要实体,学生和主体,现在这里有多对多基数。我有一个记录每个学生在每门学科中获得的所有分数的方法 所以数据库表变成了这样的3 学生 学科 学生分数-(描述学生与学科的关联) 现在ERD对我来说很清楚了,但我对这里的OO建模感到困惑,我需要在这里创建什么对象/类,以及它们将如何交互? 如果有人能给我解释一下,请告诉我 提前谢谢 编辑: 怎么只有两门课能满足我的要求?让我解释一下: 课程主题包含所有与该主题特别相关

在这个场景中,我对如何制作对象感到困惑。 我正在使用IPhone应用程序

假设我有两个主要实体,学生和主体,现在这里有多对多基数。我有一个记录每个学生在每门学科中获得的所有分数的方法

所以数据库表变成了这样的3 学生 学科 学生分数-(描述学生与学科的关联)

现在ERD对我来说很清楚了,但我对这里的OO建模感到困惑,我需要在这里创建什么对象/类,以及它们将如何交互? 如果有人能给我解释一下,请告诉我

提前谢谢

编辑:

怎么只有两门课能满足我的要求?让我解释一下:

课程主题包含所有与该主题特别相关的属性,如名称、学时、授课对象等

班级学生有自己的特定属性,如姓名、年龄、注册班级等

现在我把学生在科目A中得了90分的信息存储在哪里。对于DB,我有另一个表,就像在m-m关系中一样。 所以我的问题是,我是否也应该创建第三个表的类,比如上面提到的STUDENTMARKS,因为主要的student或subject对象不能保存studentA..to…StudentZ注册到SubjectA中的所有信息,所有这些student对象都包含在subject对象中,但每个学生的分数存储在哪里,因为学生对象不能有marks属性,因为marks不直接/仅与学生相关

有人能为这个考虑到Obj-C的课程做一个详细的小测验吗。

这个怎么样(假设C#):


多对多,学生班级将有一个科目列表,科目将有一个学生列表……如果你在一年内提供两次特定科目,那么每个学期的对象将有一个学生列表

public class Student{

   private ArrayList<Subject> current;
   private ArrayList<Subject> passed;

   ...
}

public class Subject{

   private ArrayList<Student> enrolled;
   private ArrayList<Student> passed;

   ...
}
其中s1是学生对象,subject是subject类的对象

在学生类中,您可以添加如下方法:

public Integer getScore(Subject sub){
    return transcript.get(sub);
} 

如果缩进不正确,我很抱歉,因为我是在手机上写的;)

检查我的编辑…如果你喜欢它,而不仅仅是通过投票表示感谢,伙计!克里奥,是的,我喜欢,我会试试。塔克斯。但我在操作系统上的声誉现在只有9,所以我不能提高投票率,因为它至少需要15。但是,是的,我喜欢它,非常感谢你们的支持。这是一个关于设计的更普遍的问题。编辑之后,你使我的回答变得无关紧要@Sohail下次当您的OO概念明确后,您应该创建一篇关于Obj-C的新帖子:(
private HashMap<Subject,Integer> transcript....
S1.getScore(subject)
public Integer getScore(Subject sub){
    return transcript.get(sub);
}