PHP 类关系以及如何扩展类


php classes relation and how to extend classes

我的查询是关于架构和类的关系的,我想知道比我实现的更好的解决方案。

我有 4 节课,每节课解释一行

  1. 核心.php类,将具有所有通用功能
  2. A.php类文件,其中包含任务A的特定功能,例如在csv文件A上写入。
  3. B.php类文件,其中包含任务B的特定功能,例如编写另一个与csv A完全不同的csv文件。
  4. X.php类,这是另一个特定于任务的类。

现在来谈谈将使用所有 4 个类的通用脚本。 所以我不明白哪个类会扩展哪个另一个类

A.php和B之间没有关系.php

但是 x.php 必须使用所有 3 个类 core.php、A.php 和 B.php。

目前我所做的,我为核心类设计了一个接口,x.php扩展核心类并实现接口。我将 A.php 和 B.php 设计为静态类。

请指导

如果类彼此无关,则不必extend类。您可以简单地另一个类中使用一个类,而这两个类没有任何关系继承或接口方面。

你可以这样构建它:

  • class Common是每个类继承的基类,包含所有类都需要的公共代码,例如用于日志记录或数据库访问的代码。
  • class A extends Common,专门用于一些与CSV相关的任务。这个类本身可能会也可能不会做任何事情。
  • class B extends A,甚至更专注于涉及CSV的一些特定任务。
  • class X extends Common,又是其他一些任务。

通常,如果一个类执行几乎相同但稍微更专业或不同,则extend公共基类。如果一个类与另一个类没有任何共同之处,只需将它们设置为独立的类即可。使用interfaces进行多态性;听起来这不是你现在需要的。

听起来像是基本的依赖管理。我不明白你为什么明确想要扩展任何东西?

您可能应该做的是注入所需的依赖项。分别实例化CoreAB,然后再使用它所依赖的对象实例化X