php - PHP 中的 OOP 方法

标签 php oop

我使用 PHP 程序编程(这甚至是一个词吗?)大约五年了,我决定尝试 OOP 方法,但遇到了一些概念/设计问题。假设您在程序中有一些模块,每个模块都有可能列出、添加、编辑和删除实体。实体可以是……不知道、用户、客户、产品等。

您将如何设计类来操纵这些实体?

我想到了两种可能性:

  • 使用 getUsersList、addUser、editUser、delUser 等方法为每个实体创建类
    这种方法似乎很耗费资源,因为在列表脚本中您只需要 getUsersList 和 delUser 方法,而在添加用户弹出脚本中,您只需要 addUser 方法,在编辑用户弹出脚本中只需要 editUser 方法。所以,你必须实例化一个对象并且只使用它的两个或一个方法......
  • 创建通用类:为每个实体列出、添加、编辑、删除和扩展它们,这样您一次只需实例化一个类(您真正需要的类)

提前致谢

最佳答案

我会创建一个 interface定义列表、添加、编辑和删除方法。这给你一个类"template"。如果您的类(用户、客户端、产品等)实现此接口(interface),则必须在这些类中定义接口(interface)中的方法。

这将为您提供一个类似的“API”来访问实现您的接口(interface)的每个类的所有功能。由于您列出的每个对象都包含不同的数据,因此方法的细节会有所不同,因此是分开的,但接口(interface)是相同的。

旁白:

您在方法列表中包含“列表”让我有些担心。这似乎暗示您将对象视为用户、客户、产品等的集合,其中最有可能有一个代表单个用户的用户类,一个代表的客户端类em>单一客户端

另一方面,“列表”可以作为静态方法处理 - 一种无需类实例即可调用的方法。

$bob = new User('bob');
$bob->add(); // Adds bob to the database
$fred = new User('fred');
$fred->add(); // Adds fred to the database

$users = User::list(); // Gives an array of all the users in the database

无论如何,这就是我处理事情的方式。

关于php - PHP 中的 OOP 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4805368/

相关文章:

php - 在 YouTube 上吸引订阅者

php - 为 PHP 导入包或自动加载?

php - PHP 在所有浏览器中都是通用的吗?

matlab - 如何在 matlab 中对整个类执行导入?

oop - 必须继承才能实例化的类的正式名称是什么?

php - 从 laravel Eloquent 数据透视表中获取计数

javascript - 如何使用 PHP 中动态创建的按钮更改数据库值

java - 有没有一种方法可以使方法在内部方法中返回?

php - 什么时候使用静态函数,什么时候不使用静态函数?

c++ - 如果不是手动完成,子类是否会继承父类的析构函数?