objective-c - iOS 单独创建一个协议文件(Protocol)的意义在哪里?
伊谢尔伦
伊谢尔伦 2017-04-17 17:46:04
0
3
425

问题是 ,我们都知道 委托和代理是一种设计模式。那么问题来了,既然一个类中可以单独的写一个协议出来,像Category或者Extension 一样。可以直接在当前类里面写出来。当然单独创建出来也有用处。

 但是一个单独创建协议的文件(Protocol)意义何在。是封装一些方法吗,还是干什么。如果是封装一些方法,继承自NSObject的类,好像没有什么东西可以触发让他在关键时候实现对象的方法,就算遵守了其他协议,那也没有实现啊,怎么调用。如果是定义一套标准出来,那这个标准意义在哪里哪,请求大牛,给我解惑!!万分感谢!
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(3)
伊谢尔伦

これはオブジェクト指向の質問です。このプロトコルは抽象的なもので、たとえば、飛行機と鳥は両方とも飛行することができますが、その実装方法は異なります。はい、では、このプロトコルは個別に定義する必要がありますか?いつか人間が空を飛べるようになるかもしれません。そのときは、飛行プロトコルを実装するだけで済みます。

iOS に戻ると、たとえば NSArray は NSFastEnumeration プロトコルを実装します。実装方法は異なりますが、飛行機や鳥が飛ぶのと同じです。高速に列挙できるオブジェクトが必要な場合、NSFastEnumeration プロトコルに従うオブジェクトである限り、それが NSArray であるか NSDictionary であるかを気にする必要はありません。恐らく、おっしゃるような基準の意味というのはそういうことだと思います。

いいねを押す +0
洪涛

Objective-c はオブジェクト指向 C です。継承の概念は、C++ で複数クラスの継承を実装するために使用され、サブクラスが複数の親クラスを継承する場合の複雑さを回避し、クラスを平坦化します。階層。
たとえば、car が親クラスの場合、燃料自動車と電気自動車という 2 つのサブクラスが存在します。ハイブリッド自動車が必要な場合は、複数の親クラスを継承する必要があります。クラス階層は 3 レベルですが、プロトコルを使用する場合、ハイブリッド車は燃料プロトコルと電気プロトコルを実装し、必要なクラス階層は 2 層だけです。

いいねを押す +0
迷茫

http://www.jianshu.com/p/ae7472664afc これを見てください。私の理解はデカップリング

です。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!