タグ付けされた質問 「oop」

オブジェクト指向プログラミングは、「オブジェクト」を使用したプログラミングパラダイムです。つまり、データフィールドとメソッド、およびそれらの相互作用で構成されるデータ構造です。



15
クラスではなく構造体をいつ使用すればよいですか?
MSDNでは、軽量オブジェクトが必要な場合は構造体を使用する必要があると述べています。構造体がクラスよりも望ましい他のシナリオはありますか? 一部の人々はそれを忘れているかもしれません: 構造体はメソッドを持つことができます。 構造体は継承できません。 構造体とクラスの技術的な違いを理解していますが、構造体をいつ使用するかがわかりません。
302 .net  oop 




5
原型継承が古典よりも優れている点は?
それで、私はついにこれらの年の間ずっと足を引きずることをやめて、JavaScriptを「適切に」学ぶことを決めました。言語設計の最も頭を悩ます要素の1つは、継承の実装です。Rubyの経験があったので、クロージャーと動的型付けを見て本当に幸せでした。しかし、私の人生では、継承のために他のインスタンスを使用するオブジェクトインスタンスからどのようなメリットが得られるかを理解できません。

18
クラスで「これ」を使用する必要があるのはいつですか?
私はそれthisが現在のオブジェクトを参照していることを知っています。しかし、本当にそれをいつ使用する必要があるのか​​わかりません。たとえば、一部のメソッドのx代わりにを使用した場合、何か違いthis.xはありますか?x考えられるメソッドに対してローカルな変数を参照する可能性がありますか?この方法でのみ見られる変数を意味します。 どうthis.method()ですか?使えますか?それを使用する必要があります。だけを使用method()した場合、デフォルトでは現在のオブジェクトに適用されませんか?
267 java  oop  this 


14
JavaScriptのクラスと静的メソッド
私はこれがうまくいくことを知っています: function Foo() {}; Foo.prototype.talk = function () { alert('hello~\n'); }; var a = new Foo; a.talk(); // 'hello~\n' でも電話したいなら Foo.talk() // this will not work Foo.prototype.talk() // this works correctly 仕事をするためのいくつかの方法を見つけFoo.talk、 Foo.__proto__ = Foo.prototype Foo.talk = Foo.prototype.talk これを行う他の方法はありますか?それが正しいのかどうかはわかりません。JavaScriptコードでクラスメソッドまたは静的メソッドを使用していますか?
262 javascript  oop 


6
オブジェクト指向のJavaScriptのベストプラクティス [閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 大きなプロジェクトをJavascriptでコーディングしているところです。ハックなJSがすぐに読めなくなる可能性があり、このコードをクリーンにしたいので、最後の1つはかなりの冒険でした。 まあ、私はオブジェクトを使用してlibを構築していますが、JSで物事を定義するにはいくつかの方法があり、スコープ、メモリ管理、名前空間などに重要な結果をもたらします。EG: 使用するvarかしないか。 ファイルまたは(function(){...})()jqueryスタイルで物事を定義します。 を使用thisするかどうか。 function myname()またはを使用しmyname = function()ます。 オブジェクトの本体でメソッドを定義するか、「プロトタイプ」を使用します。 等 それでは、JSでOOをコーディングするときの実際のベストプラクティスは何ですか? ここで本当に期待される学術的説明。品質と堅牢性を扱っている限り、本へのリンクは大歓迎です。 編集: いくつかの参考文献を入手しましたが、私はまだ上記の質問への回答とベストプラクティスに非常に興味があります。
251 javascript  oop 

27
セッターに「これ」を返すのは悪い習慣ですか?
Javaのセッターに「これ」を返すようにするのは良いことですか、悪いことですか? public Employee setName(String name){ this.name = name; return this; } このパターンは、次のようにセッターをチェーンできるので便利です。 list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!")); これの代わりに: Employee e = new Employee(); e.setName("Jack Sparrow"); ...and so on... list.add(e); ...しかし、それは一種の標準的な慣習に反します。セッターが何か便利なことをできるからといって価値があるのではないでしょうか。このパターンがいくつかの場所(JMock、JPAなど)で使用されているのを見てきましたが、一般的ではないようで、このパターンがどこでも使用されている非常に明確に定義されたAPIでのみ使用されます。 更新: 私が説明したことは明らかに有効ですが、私が本当に探しているのは、これが一般的に受け入れられるかどうか、および落とし穴や関連するベストプラクティスがあるかどうかについての考えです。Builderパターンについては知っていますが、私が説明しているものより少し複雑です。JoshBlochが説明しているように、オブジェクトを作成するための静的なBuilderクラスが関連付けられています。
249 java  design-patterns  api  oop 

17
サブクラスはプライベートフィールドを継承しますか?
これはインタビューの質問です。 サブクラスはプライベートフィールドを継承しますか? 「通常のOOP方法」ではアクセスできないため、「いいえ」と答えました。しかし、インタビュアーはそれらが継承されていると考えています。これは、そのようなフィールドに間接的にまたはリフレクションを使用してアクセスでき、それらはまだオブジェクトに存在しているためです。 私が戻ってきた後、私はjavadocで次の引用を見つけました: スーパークラスのプライベートメンバー サブクラスは、親クラスのプライベートメンバーを継承しません。 インタビュアーの意見について何か議論はありますか?
245 java  oop  inheritance  private 

10
UML矢印の説明
私は最近UMLを研究し、クラス間に通常の単純な矢印を使用して単純な図を描画していますが、それだけでは十分ではありません。他にもたくさんの矢印があります。一般化、実現など、図の読者にとって意味のあるものです。 各矢印を説明できる優れたリソースはありますか(通常、プレーン、ドット、ダイヤモンド塗り、ダイヤモンド)? 彼らのためにいくつかのコード例があればそれは最高でしょう。
244 oop  uml 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.