【问题标题】:Extending/Modifying AddressInterface扩展/修改地址接口
【发布时间】:2017-05-17 14:24:39
【问题描述】:

我正在与sylius/sylius-standard 合作。我也在用一些新的实体和模型创建我自己的包。其中一个要求是扩展/修改当前的 Sylius 地址模型,但我注意到 AddressInterface 有几种我不想使用的方法,例如与 FirstName、LastName 和 Company 相关的所有方法。据我了解 OOP 和 PHP 接口,我的新类或接口应该实现接口中声明的所有方法(根据official documentation)。

有没有一种方法可以利用 Sylius 地址模型提供的所有功能,但需要我自己的 CustomAddressInterface

【问题讨论】:

    标签: php oop interface sylius


    【解决方案1】:

    我认为您问题的根源在于对接口是什么的误解。

    接口是契约。如果一个类被声明为期望一个具有特定接口的实例,这意味着该类的编写意图是使用该接口中的方法。

    如果您使用的是库,其中某些代码需要特定的接口,那么您必须实现它包含的所有方法。否则您的自定义类实例将无法履行声明的合同。

    注意:如果您看到声明需要接口的代码, 但实际上并未使用该接口中的所有方法,该代码库违反了Interface Segregation Principle

    编辑

    我想我必须把它拼出来:

    有没有一种方法可以利用 Sylius 地址模型提供的所有功能,但需要使用我自己的 CustomAddressInterface?

    没有。

    【讨论】:

    • 是的,我知道这一点,但我想了解如何在 Sylius 中实现这一点。
    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 2018-11-28
    • 2020-04-28
    • 2019-10-14
    • 2022-11-10
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多