我很少使用协议,所以我对正确使用它们还没有感觉。对我来说,它们看起来很像 Java 接口,其优点是类型和操作可以很好地分离。
除了解决表达问题,我将协议理解为一种以有意义的方式对功能进行分组的方式。
因此,如果我有一条记录和一组相关函数来操作该记录,我可以定义一个协议。但是,如果我没有参与该协议的任何其他数据类型,它会以某种方式感觉像是在滥用该模式。此外,这不是增加了不必要的复杂性吗?
关于这个问题是否有任何推理,或者至少有一些关于何时使用协议以及何时坚持使用普通旧功能的约定?
我很少使用协议,所以我对正确使用它们还没有感觉。对我来说,它们看起来很像 Java 接口,其优点是类型和操作可以很好地分离。
除了解决表达问题,我将协议理解为一种以有意义的方式对功能进行分组的方式。
因此,如果我有一条记录和一组相关函数来操作该记录,我可以定义一个协议。但是,如果我没有参与该协议的任何其他数据类型,它会以某种方式感觉像是在滥用该模式。此外,这不是增加了不必要的复杂性吗?
关于这个问题是否有任何推理,或者至少有一些关于何时使用协议以及何时坚持使用普通旧功能的约定?