我在程序上用PHP编程(这是一个单词吗?)大约五年了,并决定尝试一种OOP方法,但遇到了一些概念/设计问题.假设您在程序中有一些模块,每个模块都可以列出,添加,编辑和删除实体.一个实体可以是..不知道,用户,客户,产品等.
你将如何设计类来操纵这些实体?
我想到了两种可能性:
提前致谢,
我将创建一个定义列表,添加,编辑和删除方法的界面.这为您提供了一个类"模板".如果您的类(用户,客户端,产品等)实现此接口,则必须在这些类中定义接口中的方法.
这将为您提供类似的"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)
无论如何,这就是我处理事情的方式.