数据库的最佳OOP设计
Best OOP design for database
对于学校作业,我必须创建一个C++程序,该程序将创建和管理一个包含学生和本科生的二进制平面文件数据库。本科生与师范生基本相同,只是增加了一些领域。一个提示是我们可以使用模板。
我的问题在于设计的结构。我试过以下几种:
- 创建一个包含
string
变量的Person
类,student
和undergrad
类从中继承,并为字段添加更多变量。这很有效,但以后很难添加更多类型的人,所以我尝试: - 创建包含
Undergrad
和Student
从中继承的map<string, string>
的Person
类,以及包含vector<Person>
的database
类。在Person::map<string, string>
中,我添加了不同的字段及其值,如名称、地址等
我不确定我的做法是否正确。有没有一个标准的设计模式用于这样的事情?
正确的方法更多地取决于你需要系统做什么。如果你知道系统将围绕你列出的需求进行专业化,并且你想要更好的运行时性能,那么你的第一种方法是更标准的c++架构。
地图方式可以让你实现一种更通用的方法,但代价是清晰度、专门的访问者等等,所以我猜这不是你的老师想要的方法。
如果你知道系统的所有要求(将进行什么样的查询,期望支持什么,等等),它将更好地通知你的决定,所以你应该明确这一点。
祝你好运!
注意"继承"的类层次结构。大多数时候,只有当存在"Liskov置换原理"时,你才会推导出,即你可以取一个名为"person"的对象,并在不知道其真实类型的情况下调用该对象上的函数。
请注意,利斯科夫是一位女性,我认为她在80年代初发表了这一原则。
相关文章:
- OOP设计:一个对象依赖于其所有依赖项的存在
- 我是否违反了OOP设计准则?两个有趣的设计泡菜
- 在制作GUI时清理OOP设计
- 使用 OOP 进行状态模式设计
- 在进行 OOP 状态机设计时如何避免单例
- OOP:没有静态成员或完全重新设计的类
- OOP设计-受保护的成员不在自己的类中使用,但仅在子类中使用
- OOP 设计 - 将类成员变量作为类中的方法参数传递
- 需要有关在类之间共享变量的 OOP 设计的帮助,这些变量单独使用计时器运行
- OOP 设计 - 处理整个 Foo 对象序列
- 使用 C++ 的 OOP 设计模式
- 逻辑矛盾是否在类设计中背叛了OOP
- 数据库的最佳OOP设计
- 用c++ OOP设计更新总价值
- c++ - OOP设计-多重继承和纯虚方法
- 正确的oop设计,如果我想调用const引用的非const函数
- OOP设计——从泛型容器继承
- OOP:设计一个树,在Node类和tree类之间划分功能
- OOP:派生子类中数据库连接的正确类设计
- c++ OOP 设计 - 将数据成员传递给其他类 - 是否合理