問題タブ [setter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1097 参照

ruby-on-rails - Rails で属性をオーバーライドし、基になる値を取得する

私の人生では、これを行う方法がわかりません。保存された値がファイル システム上のリソースへのパスであるモデルがあります。モデルがファイル システムからリソースを書き込んでフェッチするようにしたいので、当然、これを行うために getter と setter をオーバーライドしたいと考えています。次に、データベースにある基になる値を取得するにはどうすればよいですか?

アンダースコアがある場所には何が入りますか? これを行うために「write_attribute」が使用されているのを見たことがありますが、廃止されたようです。何か案は?もちろん、ゲッターについても同様です。

また、オーバーライドに関して間違ったツリーを吠えている場合は、より良いテクニックを聞きたいです。オプションではない唯一のことは、値をデータベースに直接保存することです。

ありがとう!

0 投票する
5 に答える
73989 参照

c# - クラスc#のクラスのゲッターとセッター

属性とゲッター/セッターを持つクラスInnerClassがあると仮定します。InnerClassを含むクラスOuterClassもあります。

例えば

OuterClassのinnerClassメンバーに正しいゲッターとセッターを実装するにはどうすればよいですか?

前もって感謝します!

0 投票する
7 に答える
45026 参照

java - Java のゲッター/セッター

私は Java を初めて使用しますが、ActionScript 3 で OOP の経験があるため、知っているものに依存して移行しようとしています。

ActionScript 3 では、get キーワードと set キーワードを使用してゲッターとセッターを作成できます。つまり、クラスにメソッドを作成し、そのクラスのインスタンスのプロパティを介してデータにアクセスします。複雑に聞こえるかもしれませんが、そうではありません。次に例を示します。

そして、次nameのようにオブジェクトにアクセスします。

Javaでそれを行うにはどうすればよいですか?

public フィールドをいくつか持つだけでは問題ありません。メソッドの前に get と set を使用するという規則があることに気付きましたが、これで問題ありません。

例えば、

クラスのインスタンスからフィールドとしてプライベート フィールドにアクセスする場合のように、Java に ActionScript 3 ゲッター/セッターに相当するものはありますが、それをクラス内で内部的に実装するためのメソッドがありますか?

0 投票する
1 に答える
2495 参照

.net - データバインディングとsetterでの例外のスロー

簡単なクラスがあるとしましょう

次に、このクラスのバインディングを設定します。

ここで、テキストボックスに誤った年齢値(たとえば200)を入力すると、セッターの例外が飲み込まれ、テキストボックスの値を修正するまで何もできなくなります。つまり、テキストボックスはフォーカスを失うことができなくなります。すべてサイレントで、エラーはありません。値を修正するまで、何もできません(フォームまたはアプリケーション全体を閉じても)。

バグのように見えますが、問題は次のとおりです。これの回避策は何ですか?

0 投票する
3 に答える
102 参照

testing - デリゲートのセッターはインターフェイスにあるのでしょうか?

この種の設計のオブジェクトはたくさんあります: インターフェイスといくつかの実装、および構成によるいくつかのオブジェクトの使用。例 : Foo は IFoo を実装し、IBar を実装する Bar オブジェクトを持っています。また、依存関係を注入するための setBar(IBar bar) メソッドも持っています。

私の質問は次のとおりです。セッターはインターフェイスにいるべきではありませんか? (テスト、モッキングのために...私は立ち往生しています!)

0 投票する
4 に答える
2795 参照

iphone - Objective-C セッターのメモリ管理

Objective-C のメモリ管理については、まだ少し混乱しています。私の混乱は、自動解放が正確に何を意味するのかに起因していると思います。

では、View Controller の setAccountDictionary メソッドの accountDictionary をどうすればよいでしょうか。現在、インスタンス変数「accountDictionary」を返されたものに設定しています。保持されたものに設定し、返されたものを解放する必要がありますか? NSString の propertyList メソッドが自動解放されている場合、セッター コード ブロックはどのように見えるでしょうか?

ところで、BackendResponse を解放すると、accountDictionary は失われますか? 私はそうではないと思います...

0 投票する
13 に答える
9823 参照

language-agnostic - Allen Holub は「get/set 関数は絶対に使用しないでください」と書いていますが、彼は正しいですか?

アレン・ホルブは次のように書いています。

何らかの結合なしにプログラムを作成することはできません。それにもかかわらず、オブジェクト指向 (オブジェクト指向) の原則に従うことで、結合を大幅に最小限に抑えることができます (最も重要なのは、オブジェクトの実装を、それを使用するオブジェクトから完全に隠す必要があるということです)。たとえば、オブジェクトのインスタンス変数 (定数ではないメンバー フィールド) は、常に非公開にする必要があります。限目。例外なく。これまで。私は真剣です。(保護されたメソッドを効果的に使用できる場合もありますが、保護されたインスタンス変数は忌まわしいものです。)

それは理にかなっているように聞こえますが、彼は続けて次のように言います。

同じ理由で、 get/set 関数を使用しないでください。それらは、フィールドを public にする方法が非常に複雑であるためです (ただし、基本型の値ではなく本格的なオブジェクトを返すアクセス関数は、返されたオブジェクトがクラスは設計における重要な抽象化です)。

率直に言って、これは私には非常識に聞こえます。

情報隠蔽の原則は理解できますが、アクセサーとミューテーターがなければ、Java Bean をまったく使用できません。モデルはビューのレンダリングを担当できないため、モデルにアクセサーなしで MVC 設計に従う方法がわかりません。

しかし、私は若いプログラマーであり、オブジェクト指向設計について日々学んでいます。おそらく、経験豊富な人がこの問題に加担できるでしょう。

Allen Holub の参考記事


関連する質問:

0 投票する
3 に答える
1410 参照

vb.net - プロパティのプロパティを設定できません

私が言ったように、プロパティのプロパティを設定するのに問題があります。トランザクションを表すクラスがあるとしましょう。私のクラスには、次のような別のクラスを表すプロパティがあります。

したがって、基本的に、適切な人を取得する取得フィルターを持つプロパティがあります。問題は、プロパティを介して Person の情報を設定したい場合、VB は私がそれを行ったことを無視しているように見えることです。たとえば、次のようになります。

しかし、これに時計を付けると、プロパティを設定した後、私の値は変わりません。私はこの行動に困惑しています。私が間違っていることはありますか?ありがとう!

0 投票する
14 に答える
77410 参照

java - シンプルなゲッター/セッターコメント

ゲッターとセッターにコメントするためにどのような規則を使用しますか?これは私がかなり前から疑問に思っていたものです。たとえば、次のようになります。

私はいつも、1a/bと2a/bについてまったく同じことを書いていることに気付きます。たとえば、1a)従業員の給与を設定し、1b)従業員の給与を設定します。それはとても冗長に思えます。今、私はあなたが文脈を与えるために(a)の部分でもっと書くかもしれないもっと複雑な何かを見ることができました、しかしそこにあるゲッター/セッターの大多数にとって、言葉遣いはほとんどまったく同じです。

単純なゲッター/セッターの場合、(a)の部分または(b)の部分のいずれかのみを入力してもよいかどうかだけが気になります。

どう思いますか?