Php 我应该将与任何单个子对象无关但与“;“收藏”;其中有多少?

Php 我应该将与任何单个子对象无关但与“;“收藏”;其中有多少?,php,function,oop,inheritance,Php,Function,Oop,Inheritance,我最近参加了一个简单的php项目,以便更好地了解OOP 基本上,该项目由一个表组成,其中可以插入多个不同类型的项目(食品、家具、电子产品等) 我有一个抽象类Items(),它构造到数据库的连接,并定义一个抽象函数save\u item()。我还为扩展Items()的每种项目类型提供了一个类,即类家具项目扩展Items() ItemsFactory()类只生成正确的对象 之所以这样做,是因为每个项目类型的属性略有不同,并且输入数据的处理方式也应该有所不同 但是,我也有一些函数,如fetch_ite

我最近参加了一个简单的php项目,以便更好地了解OOP

基本上,该项目由一个表组成,其中可以插入多个不同类型的项目(食品、家具、电子产品等)

我有一个
抽象类Items()
,它构造到数据库的连接,并定义一个
抽象函数save\u item()
。我还为扩展Items()的每种项目类型提供了一个类,即
类家具项目扩展Items()

ItemsFactory()
类只生成正确的对象

之所以这样做,是因为每个项目类型的属性略有不同,并且输入数据的处理方式也应该有所不同

但是,我也有一些函数,如
fetch_items()
(只输出表中的所有项)和
delete_items()
(批量删除不关心其类型的项)。这些函数与项目类型无关

我的问题是,我应该把
fetch_items()
delete_items()
放在哪里

显然,它们与特定的项类型无关(因此不应在子类中定义),但是在父类
Items()
中定义它们似乎不合逻辑,因为子类也会继承这些函数。但出于上述原因,他们不应该这样做

我应该为这些函数创建一个新类吗?然后本质上我将创建一个只包含项目通用函数的类

任何帮助都将不胜感激

显然,它们与特定的项类型无关(因此不应在子类中定义),但是在父类Items()中定义它们似乎不合逻辑,因为子类也会继承这些函数。但出于上述原因,他们不应该这样做

但您确实希望为每个子类型定义这些函数。您希望
FurnitureItem
类具有
delete\u items()
函数(因为您稍后将为此类调用此函数)。由于该函数对于其他子类型是通用的,因此将其包含在父类
Items
类中是有意义的,因为这是删除任何“Items”的基本实现。基类通常用于包含所有子类通用的逻辑


此外,如果您希望以后为特定子类自定义
delete_items()
的实现,您可以重写该类中的函数

对于使用这些函数的每个脚本中包含的帮助器类来说,这听起来是个好时机。这些方法似乎更适合工厂中使用,或者在工厂可以访问的存储库类中。听起来您可能需要一个集合。