类设计时如何避免ORM情况?
Posted
技术标签:
【中文标题】类设计时如何避免ORM情况?【英文标题】:How to avoid ORM situation during class design? 【发布时间】:2018-03-29 09:55:42 【问题描述】:目前,我正在做一个在线服务提供商的项目。但是我对班级设计感到很困惑。
我有像admin
、customer
、agent
这样的演员表和像city
、services
、category
、sub-category
、gender
这样的数据存储表。
我为admin
、customer
和agent
创建了类。但是我应该为city
、services
、category
等表创建类似 ORM 设计的类吗?
为数据库中的每个表设置一个类是否很好?如果没有,请解释如何避免这种情况?我可以使用 enum 或 ArrayList 代替 class 来存储数据吗?
更新:- 我想为city
、services
、category
、sub-category
、gender
执行 CRUD 操作
【问题讨论】:
将表与类混淆是一个坏主意,ORM 也是如此。为避免这种情况,请将 OOP 用于封装数据集而不是单个行的系统服务。 @reaanb 你能举个例子吗? 你没有说你的系统应该做什么。您可能有一个 CityForm 和一个 CityServicesReport 与 CityRepository 与 DBMS 交谈。 CityForm 可能会与其他存储库对话以获取查找列表的数据。 CityServicesReport 可能会与 ReportBuilder 对话。 【参考方案1】:什么是类,基本上它将包含称为函数的属性和行为。 如果你真的有太多可重用的函数和属性,最好使用一个类,否则不要。 例子, 我有类 Vehicle 所以我知道它可以具有以下属性
Class Vehicle
String color;
int tier;
function setTier()
function getTier
Class Bike implements Vehicle
// you can use the attribute and function of the Class vehicle
//as it is parent class.
在这种情况下,您可以根据需要创建不同的类。
【讨论】:
但是如果我不想为每个表创建一个单独的类。你能举出双方的例子吗?我可以使用enum
或array list
代替class
吗?以上是关于类设计时如何避免ORM情况?的主要内容,如果未能解决你的问题,请参考以下文章