問題タブ [protected]

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 投票する
10 に答える
69220 参照

oop - 保護されたメンバー変数を使用する必要がありますか?

保護されたメンバー変数を使用する必要がありますか? どのような利点があり、これによってどのような問題が発生する可能性がありますか?

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

oop - 保護された属性は常に禁止されるべきですか?

私はめったに継承を使用しませんが、継承されたクラスのカプセル化を壊すと思うので、使用する場合は保護された属性を使用しません。

保護された属性を使用していますか? 何に使うの?

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

security - Vista での保護モードとの戦い

私たちのアプリケーションは通常、クライアントを IE (XP 以前) にダウンロードしてインストールするために ActiveX コントロールを使用していましたが、ユーザー ベースが "保護モード" をオンにした Vista ボックスが増えているため、調査する必要があります。

では、今後、プロテクト モード API を使用することに頭を悩ます価値はありますか? これにより、アプリが実行する必要があること (ローカル ファイルの場所への書き込み、他のアプリケーションへのアクセスなど) を実行するためのダイアログ ボックスと管理者権限が殺到することになりますか?

必要に応じて、クライアントをダウンロードしてインストールするという汚い仕事をする非ブラウザベースのインストーラーアプリを追加することに半分傾いています...これは一度だけインストールする必要があり、大規模な企業構造ではそうなる可能性がありますITによって押し出されました。

私が見逃している他のアイデアはありますか?

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

c# - C# の継承ツリーと保護されたコンストラクター

次の継承ツリーが与えられた場合、機能する方法でそれを実装する最良の方法は何でしょうか?

これは失敗します: 'Bar.Bar()' is inaccessible due to its protection level.

コンストラクターをパブリックにしたくありません。継承するクラスのみがsFooを作成できる必要がありますBarBarは特殊なFooであり、どのタイプの もFoo作成できるはずです。public internal は、ここでは「オプション」です。定義済みの拡張機能の大部分はFooDLL の内部にあるためです。ただし、後で独自の型のFooor Baz(これは発生する可能性が高い) は、デフォルトのCreateBar()実装に固執し、ニーズを満たす場合と満たさない場合があります。

おそらく、これをリファクタリングしてうまく機能させる方法はありますか?私はこれを設計しようとして壁に頭をぶつけていますが、うまくいきます。

編集 (詳細):

もう少し具体的に: Foo は IEnumerable を実装しており、簡単に言えば、Bar は同じインターフェイスを提供していますが、その列挙可能なオブジェクトの限られたサブセットに提供しています。すべての Foo は、自分自身のサブセット (つまり、Bar) を作成して返すことができる必要があります。しかし、Foo を実装したいすべての人にこれを心配させたくありません。なぜなら、Bar がプロキシを行い、範囲の制限などを心配するからです。

0 投票する
30 に答える
2369570 参照

java - Javaのパブリック、プロテクト、パッケージプライベート、プライベートの違いは何ですか?

Java では、継承を作成および処理するときに、アクセス修飾子、つまりデフォルト (パッケージ プライベート)、 publicprotectedおよびをいつ使用するかについて明確な規則がありますか?privateclassinterface

0 投票する
18 に答える
531170 参照

c++ - C++ クラスのプライベート メンバーとプロテクト メンバーの違いは何ですか?

C++クラスのメンバーprivateとメンバーの違いは何ですか?protected

クラス外で呼び出されない変数と関数を作成する必要があることは、ベスト プラクティスの慣習から理解していますがprivate、私の MFC プロジェクトを見ると、MFC は を支持しているようprotectedです。

違いは何ですか?どちらを使用する必要がありますか?

0 投票する
16 に答える
39515 参照

ruby - Rubyで保護されたメソッドとプライベートメソッドを単体テストする最良の方法は何ですか?

Test::Unit標準のRubyフレームワークを使用して、Rubyで保護されたプライベートメソッドを単体テストする最良の方法は何ですか?

誰かがパイプを鳴らして、「パブリック メソッドのみを単体テストする必要があります。単体テストが必要な場合は、保護されたメソッドやプライベート メソッドであってはなりません」と断言するでしょうが、私はそれについて議論することにあまり興味がありません。正当かつ正当な理由で保護またはプライベートなメソッドがいくつかあります。これらのプライベート/保護されたメソッドは適度に複雑であり、クラスのパブリック メソッドはこれらの保護/プライベート メソッドが正しく機能することに依存しているため、テストする方法が必要です。保護された/プライベート メソッド。

もう1つ...私は通常、特定のクラスのすべてのメソッドを1つのファイルに入れ、そのクラスの単体テストを別のファイルに入れます。理想的には、この「保護されたメソッドとプライベート メソッドの単体テスト」機能を、メイン ソース ファイルではなく、単体テスト ファイルに実装して、メイン ソース ファイルをできるだけシンプルかつ簡単に保つために、すべての魔法を使いたいと思います。

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

c++ - C++ でネストされたクラスを保護できますか?

特定のクラス階層のクラスだけが本当に必要とするクラスがあります。クラスを最上位クラスの保護セクションにネストして、他のすべてのクラスに自動的に継承させることが可能かどうかを知りたいですか?

0 投票する
6 に答える
380 参照

c++ - C ++では、クラス/構造体のパブリック、プライベート、および保護されたメンバーの言語によってグループ化が強制されないのはなぜですか?

論理的なグループ化を許可するだけですか?

0 投票する
6 に答える
8020 参照

c# - 「保護された仮想」メソッドが多すぎることはありませんか?

大規模なプロジェクトや API/フレームワークの設計の経験がある方に質問です。

私は将来、他の多くのプロジェクトで使用されるフレームワークに取り組んでいるので、それを素晴らしく拡張可能にしたいと考えていますが、同時にシンプルで理解しやすいものにする必要があります。

多くの人が、.NET フレームワークに含まれるシール クラスとプライベート メンバーが多すぎると不満を漏らしていることを知っています。この批判を避けて、すべての保護された仮想メンバーですべてのクラスを開く必要がありますか?

できるだけ多くのメソッドとプロパティを保護された仮想にするのは良い考えですか? どのような状況で、保護された仮想を避け、メンバーを非公開にしますか?