6

ユニバーサル (iPhone と iPad の両方) アプリケーションがあります。

フォルダー構造で iPad を iPhone のクラスから分離する利点はありますか?

これが私が意味することの例です:

- MyApp
    - Resources
    - Classes
        - iPad
            - SomeUniqueClassOnIPad.h
            - SomeUniqueClassOnIPad.m
        - iPhone
            - SomeUniqueClassOnIPhone.h
            - SomeUniqueClassOnIPhone.m
    - SomeUniversalClass.h
    - SomeUniversalClass.m

それはobjective-cプロジェクトでは一般的ですか?

4

2 に答える 2

9

コーディングにおけるルールの 1 つは、決して重複したコードを持たないことです。そのため、ビューが異なることを行っている場合、またはデータが iPad であるか iPhone であるかに応じて異なる方法で処理する必要がある場合 (たとえば、データ ソースが異なる場合) は、間違いなく異なるクラスにある必要があります。 、そうでない場合は..いいえ。1 つの同じクラスを使用します。

そのような場合に実装できる一般的なものの 1 つは、コード内で行われるすべての一般的なメソッドとアクションを処理する、一種のヘルパー (必要に応じてデリゲート クラス) です。

ゴールデン ルール: できるだけコードを書かないようにします。コードが少ない == 保守性が高く、品質が高くなります。そのため、要件に影響を与えずに、できるだけ少ないコードを記述してください。また、コードを分割して (単体) テストしやすくし、再利用しやすくします。

それがあなたの質問に答えたことを願っています。

更新
これには用語があったことは知っていますが、思いつくだけです。重複したコードを持つことは「DRY 違反」と呼ばれます。DRY は Don't Repeat Yourself の略で、あらゆる種類の情報の繰り返しを減らすことを目的としたソフトウェア開発の原則であり、特に多層アーキテクチャで役立ちます。
詳細:ウィキペディアの DRY

于 2012-04-30T13:35:37.790 に答える
1

私にとっては、iPhone と iPad のビューの共通性に依存します。別々の xib ファイルがあり、両方に同じ要素が含まれている場合、同じクラスを使用することを決定するのは簡単です。

iPhone と iPad の xib ファイルに固有の要素がある場合は、クラスを分離したほうがよい場合があります。

もう 1 つのオプションは、iPhone クラスと iPad クラスを分離したい場合のために、これらのクラスで共有される基本クラスを作成することです。基本クラスには、データ要求や共通のカスタム ビューの開始など、それらの間で共通のコードが含まれます。

于 2012-04-30T13:40:17.447 に答える