php - 什么时候需要使用后期静态绑定(bind)?

标签 php oop

看完this description后期静态绑定(bind) (LSB) 我很清楚地看到发生了什么。现在,在哪种情况下最有用或最需要?

最佳答案

在以下情况下我需要 LSB:

  • 假设您正在构建一个“邮件处理器”守护程序,它从电子邮件服务器下载邮件、对其进行分类、解析、保存,然后根据邮件的类型执行某些操作。
  • 类层次结构:您有一个基础 Message 类,其子类为“BouncedMessage”和“AcceptedMessage”。
  • 每种消息类型都有自己的方式将其自身保存在磁盘上。例如,所有类型为 BouncedMessage 的消息都会尝试将其自身保存为 BouncedMessage-id.xml。另一方面,AcceptedMessage 需要以不同的方式保存自身 - 作为 AcceptedMessage-timestamp.xml。这里重要的是,确定文件名模式的逻辑对于不同的子类是不同的,但是对于子类中的所有项目都是共享的。这就是将其置于静态方法中的原因。
  • Base Message 类有一个抽象静态方法(是的,抽象AND 静态)“保存”。 BouncedMessage 使用具体的静态方法实现此方法。然后,在实际检索消息的类中,您可以调用“::save()”

如果您想了解有关该主题的更多信息:

关于php - 什么时候需要使用后期静态绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/87192/

相关文章:

javascript - PHP的json_encode在JS解析时有时会丢失最后一个 '}'括号

java - 将 JMenuItem 传递给 Controller ​​类

java - 如何确保实用静态方法的线程安全?

c# - 有什么巧妙的方法可以在不让登录困惑代码的情况下应用日志记录?

operators - 如何在 Io 编程语言中定义自己的运算符?

PHP选择具有特定宽度的图像并构建网格

php - 用于获取特定列数据的 Doctrine sql 语法

php - 无法通过另一个类连接到数据库

PHP SQL 显示图像

javascript - 从对象返回函数会破坏 instanceof