純粋なデータのObjective-Cクラスの名前はありますか?
-
27-09-2019 - |
質問
これは、コード固有の質問ではなく、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サブクラスを参照することもできるため、どちらも一種のオーバーロードです。後者はそれらを説明する最も簡潔な方法だと思います。