gpt4 book ai didi

java - 在 DAO 中反射(reflect)继承关系最有效的方法是什么?

转载 作者:行者123 更新时间:2023-12-02 06:16:06 27 4
gpt4 key购买 nike

使用 MVC 结构和 Business Object 开发业务应用程序/DAO建筑学。对于任何正常的业务对象,CRUD 功能都相当简单。但是,处理“客户就是用户”这样的父子关系的最佳方式是什么?

我知道涉及以下类:

User, UserDAO, Customer, CustomerDAO

Customer 类可以从 User 继承,但是如何在 DAO CRUD 函数中最好地反射(reflect)这一点?

最佳答案

Martin Fowler 记录了一些 Object-Relational Structural Patterns这可能有帮助:

1) Single Table Inheritance :将类的继承层次结构表示为单个表,其中包含各个类的所有字段的列。

例如EmployeeCustomer 都继承自 User,并且都存储在 User 表中,其中有一列确定特定记录代表的用户类型。

2) Class Table Inheritance :表示类的继承层次结构,每个类有一个表。

例如EmployeeCustomer 都继承自 User 并且有三个表来表示。用户表存储所有用户共有的属性。 Employee表有一个指向User表的指针,并且只存储与Employee相关的属性。 Customer 表也是如此。

3) Concrete Table Inheritance :表示类的继承层次结构,层次结构中的每个具体类都有一个表。

例如EmployeeCustomer 都继承自抽象的 User 类,并且有两个表来表示它。一个客户表和一个员工表。每个表存储用户共有的信息,但也存储独特的属性。

关于java - 在 DAO 中反射(reflect)继承关系最有效的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com