• plistig@feddit.de
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Abc and Protocols are not the same, though. The protocol is met when all methods are implemented with the expected signature. Abstract base classes require you to opt in to be considered an Implementation of some interface. Both have different use cases. Protocols are much more fragile.

    • Riskable
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      I wouldn’t say Protocols are more “fragile”… They’re more strict.

      • plistig@feddit.de
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        The opposite is true. If you have two interfaces that contain methods with the same name, then they have the same typing.Protocol. It is not possible to specify preconditions or contracts, as you would with abc.