gpt4 book ai didi

php - OOP设计题

转载 作者:可可西里 更新时间:2023-11-01 13:15:42 26 4
gpt4 key购买 nike

我是在 PHP 中使用 OOP 的新手。它极大地帮助了我的代码的组织和维护,但我想在设计我的类和尽可能高效地使用 OOP 方面做得更好。我已经阅读了四种设计模式一书,但仍然需要一些帮助。在构建了一些小应用程序之后,这是我一直遇到的一件事。

假设我正在构建一个跟踪学校注册信息的应用程序。

我目前采用的方法是创建一个名为 student 的类,以及该类中用于对单个学生记录进行 CRUD 的方法。这似乎是合乎逻辑的,我将为此类使用 student_id 作为参数的构造方法,因此我可以从对象内部引用它以进行所有这些不同的 CRUD 操作。

但是,随着我继续构建应用程序,我遇到了需要运行返回多个学生的查询的情况。例如,get_all_students_from_grade($grade)get_dropdown_of_all_students() 等。这些方法不仅仅适用于一个学生,所以我会这样似乎很奇怪将它们作为我的 student 类中的方法,因为我在实例化对象时考虑了一个 student_id。显然我可以让它以这种方式工作,但似乎我“做错了”。解决这个问题的最佳方法是什么?

最佳答案

student 类(这是一个域类)与其上的操作(业务逻辑或数据访问,视情况而定)分开,例如:

  • student - 域对象只包含数据
  • student_servicestudent_dao(数据访问对象)- 执行操作

这有时被认为是破坏了封装,但它是公认的最佳实践。

Here's有关此事的更多信息。从 OOP 的角度来看,它比破坏封装提供了更多的缺点。因此,尽管它看起来是一种公认​​的做法,但它并不完全是 OOP。

关于php - OOP设计题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1989235/

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