PHP中的OOP方法

Cat*_*lin 3 php oop

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

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

我想到了两种可能性:

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

提前致谢,

Rya*_*nal 5

我将创建一个定义列表,添加,编辑和删除方法的界面.这为您提供了一个类"模板".如果您的类(用户,客户端,产品等)实现此接口,则必须在这些类中定义接口中的方法.

这将为您提供类似的"API",以访问实现您的界面的每个类的所有功能.由于您列出的每个对象都包含不同的数据,因此方法的细节会有所不同,因而是分开的,但界面将是相同的.

在旁边:

您在方法列表中包含"列表"会让我感到有些担忧.这似乎意味着,你看到你的对象是用户的集合,客户,产品等,那里应该最有可能是用户类,它表示一个单一的用户,代表一个客户端类的单个客户端等.

另一方面,"list"可以作为静态方法处理 - 可以在没有类实例的情况下调用的方法.

$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
Run Code Online (Sandbox Code Playgroud)

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