問題タブ [getter]
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.
c# - AAAを使用してプロパティゲッターでRhino Mocks AssertWasCalled(複数回)
別のオブジェクトにコンストラクター引数として渡されるモック オブジェクトがあります。
モックされたオブジェクトのプロパティが呼び出されたことをテストするにはどうすればよいですか? これは私が現在使用しているコードです:
これは、「someobject」内で Forenames プロパティのゲッターが複数回使用されている場合を除いて機能します。そのとき、「Rhino.Mocks.Exceptions.ExpectationViolationException: INewContactAttributes.get_Forenames(); Expected #1, Actual #2..」を取得します。
単に使用する
動作せず、以下のエラーが発生します。
「待機中の期待値リストから期待値が削除されました。 Repeat.Any() を呼び出しましたか? これは AssertWasCalled() ではサポートされていません。」
では、複数の通話に対応するにはどうすればよいでしょうか。
php - PHPで__get()および__set()-magicメソッドを使用する必要があるのはなぜですか?
重複の可能性:
PHPで__construct()、__ get()、__ set()、および__call()を使用する場合/使用する必要がある場合
これは私が良い答えを見つけられなかった1つの領域です。誰かが私にそれらを正しく使用する理由/方法を説明できますか?それらは単に悪い設計上の決定ではありませんか?
java - Java:たくさんのフィールドとそのカプセル化をきれいに処理する方法は?
ある種のRPGのコーディングを任されているとしましょう。これは、たとえば、インテリジェンス、ダメージボーナス、ヒットポイントなどのaとその統計を追跡したいことを意味します。Character
GameCharacter
プロジェクトの終わりまでに、非常に多くのフィールドを処理することになりかねないことを前向きに恐れています。それぞれについて、非常によく似た一連の制約と動作に従うようにする必要があります(たとえば、最小値と最大値の間に制限されるようにしたい;「基本値」と「一時的なボーナス」を区別できるようにしたい;セッターとゲッターを経由せずに両方をインクリメントおよびデクリメントできるようにしたい) 。突然、すべてのフィールドに1つ(2つ?)のゲッターと4つのセッター、そしておそらく2つのリセッターも必要になります。10のフィールドでも、多くのメソッドが同じように意味します。
DRYnessの場合、クラスでこれらの統計をいじるロジックをカプセル化して、 or (返される値が範囲内にあることに注意)Field
などのコードを記述できるようにしました。クラスを作成するために、このような長さまで行ってきました。それらのフィールドをグループ化することですが、それは今のところ重要ではありません。intelligence.applyBonus(10)
hitpoints.get()
さて、私は「プラグイン」しているときにこの問題にぶつかりましたField
。GameCharacter
ほとんどのJava教科書では、各クラスにはパブリックゲッターとセッターを備えたプライベートフィールドが必要であると書かれています。それは理論的には良さそうです、そして私はすでにint
;の周りにクラス全体を構築しました。ただし、ゲッターを呼び出して取得する場合、アイデアはそれほど堅実に聞こえません...ゲッター:
フィールドに直接アクセスしたいです。たぶんそれは私のPython/VB [1]の「背景」ですが、私にとっては、よりクリーンで、より明確で、より単純です。
パブリックフィールドの(理論上の)問題は、私がそれに対するすべての制御を放棄していることです。たとえば、コードベースの他のポイントで、不幸により、次のことが発生する可能性があります。
微妙なバグのように聞こえます...しかし...つまり、私は本当にそれについて心配する必要がありますか?私は直接割り当てる予定はありませんField
[2]。これは実行すべきことではないことをJavadocに文書化していますが、それでも私はここで新しいので少し引き裂かれています。
それで、私はこのトピックについてのあなたの見解を聞きたいです。カプセル化の利点は非常に大きいので、先に進んでゲッターゲッターやセッターゲッターなどを用意する必要がありますか?それとも、健康的な対策でカプセル化を行い、フィールドField
として残す必要がありますか?public
[1]はい、わかっています。私は忘れようとしてきました。しかし、最近、C#とmanも少し見ましたが、プロパティは甘くありません。しかたがない。
[2]コンストラクターを除く!そして、ゲッターは欠陥のあるコンストラクターから私を救うことはありません。
c# - C# コンソールの問題
このクラスを考えてみましょう:
次に、次のような新しいオブジェクトを作成します。
問題は、getter メソッドを使用してオブジェクトのプロパティにアクセスできないことです。つまり、これは機能しません。
「動作しない」とは、「デバッグの開始」をクリックすると、コンソールウィンドウが表示されますが、何も表示されず、空白です。ただし、これは正常に機能します。
私は何を間違っていますか?
リチャード
javascript - ダミーのためのゲッター\セッター
私はゲッターとセッターに頭を悩ませようとしてきましたが、それは沈みません。JavaScriptのゲッターとセッターとゲッターとセッターの定義を読んだのですが、うまくいきませんでした。
誰かが明確に述べることができますか?
- ゲッターとセッターが何をするのか、そして
- 非常に簡単な例をいくつか挙げてください。
c# - クラスc#のクラスのゲッターとセッター
属性とゲッター/セッターを持つクラスInnerClassがあると仮定します。InnerClassを含むクラスOuterClassもあります。
例えば
OuterClassのinnerClassメンバーに正しいゲッターとセッターを実装するにはどうすればよいですか?
前もって感謝します!
java - Java のゲッター/セッター
私は Java を初めて使用しますが、ActionScript 3 で OOP の経験があるため、知っているものに依存して移行しようとしています。
ActionScript 3 では、get キーワードと set キーワードを使用してゲッターとセッターを作成できます。つまり、クラスにメソッドを作成し、そのクラスのインスタンスのプロパティを介してデータにアクセスします。複雑に聞こえるかもしれませんが、そうではありません。次に例を示します。
そして、次name
のようにオブジェクトにアクセスします。
Javaでそれを行うにはどうすればよいですか?
public フィールドをいくつか持つだけでは問題ありません。メソッドの前に get と set を使用するという規則があることに気付きましたが、これで問題ありません。
例えば、
クラスのインスタンスからフィールドとしてプライベート フィールドにアクセスする場合のように、Java に ActionScript 3 ゲッター/セッターに相当するものはありますが、それをクラス内で内部的に実装するためのメソッドがありますか?
javascript - すべてのプロパティの JavaScript ゲッター
簡単に言えば、私は PHP スタイルのゲッターが欲しい状況にいますが、JavaScript です。
私の JavaScript は Firefox でのみ実行されているため、Mozilla 固有の JS は問題ありません。
JS ゲッターを作成する唯一の方法は、その名前を指定する必要がありますが、考えられるすべての名前のゲッターを定義したいと思います。これが可能かどうかはわかりませんが、知りたいです。
language-agnostic - Allen Holub は「get/set 関数は絶対に使用しないでください」と書いていますが、彼は正しいですか?
アレン・ホルブは次のように書いています。
何らかの結合なしにプログラムを作成することはできません。それにもかかわらず、オブジェクト指向 (オブジェクト指向) の原則に従うことで、結合を大幅に最小限に抑えることができます (最も重要なのは、オブジェクトの実装を、それを使用するオブジェクトから完全に隠す必要があるということです)。たとえば、オブジェクトのインスタンス変数 (定数ではないメンバー フィールド) は、常に非公開にする必要があります。限目。例外なく。これまで。私は真剣です。(保護されたメソッドを効果的に使用できる場合もありますが、保護されたインスタンス変数は忌まわしいものです。)
それは理にかなっているように聞こえますが、彼は続けて次のように言います。
同じ理由で、 get/set 関数を使用しないでください。それらは、フィールドを public にする方法が非常に複雑であるためです (ただし、基本型の値ではなく本格的なオブジェクトを返すアクセス関数は、返されたオブジェクトがクラスは設計における重要な抽象化です)。
率直に言って、これは私には非常識に聞こえます。
情報隠蔽の原則は理解できますが、アクセサーとミューテーターがなければ、Java Bean をまったく使用できません。モデルはビューのレンダリングを担当できないため、モデルにアクセサーなしで MVC 設計に従う方法がわかりません。
しかし、私は若いプログラマーであり、オブジェクト指向設計について日々学んでいます。おそらく、経験豊富な人がこの問題に加担できるでしょう。
Allen Holub の参考記事
関連する質問:
java - シンプルなゲッター/セッターコメント
ゲッターとセッターにコメントするためにどのような規則を使用しますか?これは私がかなり前から疑問に思っていたものです。たとえば、次のようになります。
私はいつも、1a/bと2a/bについてまったく同じことを書いていることに気付きます。たとえば、1a)従業員の給与を設定し、1b)従業員の給与を設定します。それはとても冗長に思えます。今、私はあなたが文脈を与えるために(a)の部分でもっと書くかもしれないもっと複雑な何かを見ることができました、しかしそこにあるゲッター/セッターの大多数にとって、言葉遣いはほとんどまったく同じです。
単純なゲッター/セッターの場合、(a)の部分または(b)の部分のいずれかのみを入力してもよいかどうかだけが気になります。
どう思いますか?