我使用 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/