次のうちどれが、サービス指向設計の Objective-C での正しい使用法/実装になるのだろうかと思っています。
最初のバージョンは、プロトコル (インターフェース) を使用する静的言語に固有のものです。
//
// get the cloud service from our service provider
//
id<CloudServices> myService = [ServiceProvider serviceWithProtocol:@protocol(CloudServices)];
2 番目のバージョンはプロトコルを使用せず、Objective-C が実際に動的であるという事実に依存しています。
//
// get the cloud service from our service provider
//
CloudServices *myService = [ServiceProvider serviceWithClass:[CloudServices class]];
明らかに違いは、CloudServices がインターフェースまたはプロトコルであることであり、CloudServices のさまざまな実装を返すように ServiceProvider を構成できることを意味します。
だから私の質問は、どのスタイルを選ぶべきか、そしてその理由は?
ありがとう。