Swift和Objective-C中的protocol的相同点在于:两者可以被用作代理。Objective-C中的protocol类似于Java中的Interface,在实际开发中主要用与适配器模式(Adapter Pattern)。
Swift和Objective-C中的protocol的不同点在于:Swift中的protocol还可以对接口进行抽象,例如Sequence,配合拓展(extension)、泛型、关联类型等可以实现面向对象协议,从而大大提高代码的灵活性。同时,Swift中的protocol还可以值类型,如结构体和枚举。