CRUD的含义

问题描述 投票:0回答:5

缩写 CRUD(创建、读取、更新、删除)在面向对象编程中很常见。作为 OOP 的新手,我想知道此功能的上下文。当使用 CRUD 方法构建类时,这些方法应该创建、读取、更新、删除对象属性,还是应该对数据库数据执行这些操作,还是某种组合?

oop crud
5个回答
3
投票

解释 CRUD:

  • create:这部分指的是构造函数和工厂方法,它们“创建”新的数据对象供您使用,或向数据库添加新记录。
  • 阅读:这些是代码中的 getter 方法。由于您不应该在类外部公开内部变量,因此您提供了 getter,以便其他代码可以获取有关对象状态的信息。这也是读取各种数据库条目的字段。
  • update:这些是 setter 方法,在其他代码也需要能够修改对象或数据库条目的情况下对 getter 进行补充。
  • destroy:这是指对象的析构函数,释放任何分配的资源并确保可以干净地处理对象,或者从数据库中删除记录的代码段。

面向对象编程和数据库之间的联系是数据库条目在相当基本的意义上是对象的基本思想。数据库中的每个条目都有各种字段,这些字段直接对应于面向对象语言中对象的字段。


3
投票

CRUD 与面向对象编程无关。通常都是关于数据库操作的。有时它也用于 HTTP 请求。

来自维基百科

Operation           SQL     HTTP
Create              INSERT  PUT / POST
Read (Retrieve)     SELECT  GET
Update (Modify)     UPDATE  PUT / PATCH
Delete (Destroy)    DELETE  DELETE

您在 OOP 环境中听说过它,因为与您共度时光的这些人使用 Java 等 OOP 语言。

作为证据,您可以在这里找到 Haskell 中的 CRUD 实现


2
投票

您不应该使用 CRUD 方法构建类。

您应该使用代表在建模域上下文中表示的对象的“行为”的方法来构建一个类。使用像 CRUD 这样的通用方法构建一个类将是一种 OOP 设计味道。 举个例子,这是错误的(so so so error)

class Person(object): def __init__(name, age, location) self.name = name self.age = age self.location = location def get_name(self): return self.name def update_name(self, new_name): self.name = new_name def delete_name(self): self.name = None

这些方法与

行为无关。它将 Person 变成了一个愚蠢的数据对象,这与面向对象设计试图做的相反。 如果您的人员对象必须与数据库对话才能持久保存,则应在公共接口中隐藏此功能。更好的选择是首先不将对象绑定到数据库,在域中使用普通旧对象并使用其他方法写入数据库。


1
投票

CRUD 也是声明变量的基本操作。例如,在 C# 中,您可以声明一个变量

List<Of T>

,然后在将其上传到数据库之前对其执行 CRUD 操作。

    


-2
投票

Create操作对应SQL INSERT语句和HTTP POST方法。
  • Read 操作对应于 SQL SELECT 语句和 HTTP GET 方法。
  • Update 操作对应于 SQL UPDATE 语句和 HTTP PUT/PATCH 方法。
  • Delete操作对应SQL DELETE语句和HTTP DELETE方法。
我的博文

给出了深刻的理解

© www.soinside.com 2019 - 2024. All rights reserved.