アクセサメソッド
アクセサメソッドは、オブジェクトのプロパティの値を取得または設定するインスタンスメソッドです。Cocoa の用語では、オブジェクトのプロパティの値を取り戻すメソッドを「ゲッタ」、またはゲッターメソッドと称され、又、オブジェクトのプロパティの値を変更するメソッドは、セッターメソッド、又は「セッタ」と称されます。これらのメソッドは、多くの場合、オブジェクトのプロパティの値を設定・取得するための API を提供し、ペアで見られます。
これらは抽象化レイヤを提供するため、直接、状態データにアクセスするよりもアクセサメソッドを使用したいと思うでしょう。アクセサメソッドが提供する利点の2つは、次のとおりです。
- プロパティが変更を表すか、変更を保存した場合でも、コードを書き直す必要はありません。
- アクセサメソッドは、多くの場合、値を回収または設定するたびに発生する重要な動作を実装します。例えば、セッターメソッドは頻繁にメモリ管理コードを実装し、値が変更されたときに、他のオブジェクトに通知します。
命名規則
このパターンの重要性から、Cocoa はアクセサメソッドの命名のためにいくつかの規則を定義しています。種類というプロパティには type、name と呼ばれるものは、通常は次のような形式でアクセサメソッドを実装する必要があります。
- (type)name; - (void)setName:(type)newName;
一つの例外は、ブール値であるプロパティです。ここでゲッターメソッド名は isName としましょう。たとえば:
- (BOOL)isHidden; - (void)setHidden:(BOOL)newHidden;
Cocoa の多くの他の機能は、特定の キー値コーディング では、それに依存しているため、この命名規則は重要です。Cocoa の "get" で始まるメソッドは、参照によって値を返すメソッドであることを示しているので、Cocoa は getName を使用しません。
前提条件の記事
関連記事
既出の議論
アクセサメソッドを、プロパティ値を取得または設定に使う
次の章
前の章