【发布时间】:2019-06-06 22:40:37
【问题描述】:
我最近参加了一个简单的 php 项目,以更好地了解 OOP。
基本上,该项目由一张桌子组成,其中可以插入多种不同类型的物品(食物、家具、电子产品等)。
我有一个abstract class Items(),它构造了与数据库的连接并定义了一个abstract function save_item()。对于扩展 Items() 的每种项目类型,我也有一个类,即class FurnitureItem extends Items()
ItemsFactory() 类只会生成正确的对象。
这样做是因为每个项目类型的属性略有不同,并且输入数据的处理方式应该不同。
但是,我也有诸如fetch_items()(只输出表中的所有项目)和delete_items()(批量删除不关心其类型的项目)之类的功能。这些函数函数与项目类型无关。
我的问题是,我应该把fetch_items()和delete_items()放在哪里?
显然,它们与特定的项目类型无关(因此不应在子类中定义),但是在父类Items() 中定义它们似乎不合逻辑,因为子类也会继承这些功能。但由于上述原因,他们不应该这样做。
我应该为这些功能创建一个新类吗?那么本质上我会创建一个只包含项目通用函数的类。
任何帮助将不胜感激!
【问题讨论】:
-
听起来是在每个脚本中使用这些函数的帮助类的好时机
-
看起来这些方法更适合工厂,或者工厂可以访问的存储库类。
-
听起来你可能想要一个收藏。
标签: php function oop inheritance