質問

これは、コード固有の質問ではなく、Objective-Cの命名法の質問です。Cには、純粋なデータ用の構造体があります。Enterprise Javaには、ゲッターとセッターを備えた純粋なメンバー変数である「bean」クラスがありますが、ビジネスロジックはありません。Adobe FLEXには、「値オブジェクト」があります。

Objective-Cには、単にivarとgetter / setter(または、ファンシーになりたい場合は@ property / @ synthesize)があり、実際のオブジェクトがないオブジェクト(もちろん、NSObjectから派生)の適切な名前がありますか?ビジネスの論理?

より具体的な例としては、ファイル名、ファイルサイズ、説明、その他のさまざまなメタデータのゲッターとセッターを備えた単純なクラスがあります。次に、これらの束を取得して、C構造体の面倒なNSValueラッピングを必要とせずに、コンテナー(NSDictionary、NSArray)に簡単にスローできます。また、たとえば、緩く型付けされた子NSDictionariesの束を親コンテナオブジェクトに入れるよりも少し構造的です。

役に立ちましたか?

解決

いいえ、特別な名前はありません(少なくとも私が知る限り)。NSObjectから継承するすべてのObjective-Cオブジェクトは、ファーストクラスのオブジェクトです。もちろん、ゲッターとセッターだけでクラスを実装することもできますが、合成されたプロパティでさえ、アトミック性とメモリ管理のための穏やかな「ビジネスロジック」を備えています。必要に応じて、純粋なデータにC構造体を使用できます(Cocoaの例はNSRectです)が、あなたが言うように、NSDictionaryなどの他のクラスで使用するのはより困難です。

他のヒント

Objective-Cにはそのようなクラスの正式な名前はありません。人々は「値オブジェクト」や「純粋なデータオブジェクト」などを参照する傾向がありますが、NSValue(またはプロパティリスト値)やNSDataサブクラスを参照することもできるため、どちらも一種のオーバーロードです。後者はそれらを説明する最も簡潔な方法だと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top