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


17
パブリック、プライベート、保護の違いは何ですか?
いつ、なぜ、私が使用する必要がありpublic、privateおよびprotectedクラス内の関数や変数?それらの違いは何ですか? 例: // Public public $variable; public function doSomething() { // ... } // Private private $variable; private function doSomething() { // ... } // Protected protected $variable; protected function doSomething() { // ... }
989 php  oop  private  public  protected 

16
Rubyで保護されたプライベートメソッドを単体テストする最良の方法は何ですか?
標準のRuby Test::Unitフレームワークを使用して、Rubyで保護されたメソッドとプライベートメソッドを単体テストする最良の方法は何ですか? 「パブリックメソッドのみをユニットテストする必要があります。ユニットテストが必要な場合は、保護されたメソッドやプライベートメソッドであってはなりません」と誰かがパイプを張って独断的に主張することは間違いありませんが、私はそれについて議論することにあまり興味がありません。私はいくつかの方法持っているこれらのプライベート/保護された方法は、適度に複雑で、良いと正当な理由のために保護またはプライベートを、そしてクラスのパブリック・メソッドが正常に機能してこれらの保護/プライベートメソッドに依存し、したがって、私はテストの方法が必要ですprotected / privateメソッド。 もう1つ...通常は、特定のクラスのすべてのメソッドを1つのファイルに入れ、そのクラスの単体テストを別のファイルに入れます。理想的には、この「保護されたメソッドとプライベートメソッドの単体テスト」機能をメインソースファイルではなく単体テストファイルに実装して、メインソースファイルをできるだけシンプルかつ単純にするための魔法がすべて欲しいです。


1
JavaのAbstractListのremoveRange()メソッドが保護されているのはなぜですか?
誰もが何か考えを持っていますか、なぜAbstractListの(そしてArrayListの)removeRangeメソッドがなぜprotectedですか?非常に明確に定義された便利な操作のように見えますが、それでも、それを使用するには、List実装をサブクラス化する必要があります。 隠された根拠はありますか?私にはかなり不可解なようです。


7
「パッケージプライベート」メンバーアクセスは、デフォルトの(変更なしの)アクセスと同義ではありませんか?
一部のドキュメントで使用されている「パッケージプライベート」という用語と、「デフォルトアクセス」の使用について少し混乱しています。package-privateとdefaultアクセスは両方ともprotectedと同義ではありませんか?


5
Railsの保護されたプライベートメソッド
Rubyでのメソッドの可視性(パブリックメソッド、プロテクトメソッド、プライベートメソッド)は、このブログ投稿のような場所で詳しく説明されています。しかし、Ruby on Railsでは、フレームワークの設定方法が原因で、通常のRubyアプリケーションとは少し異なるように見えます。それで、Railsモデル、コントローラー、ヘルパー、テストなどでは、保護されたメソッドまたはプライベートメソッドを使用することが適切である/適切でないのはいつですか? 編集:これまでの回答をありがとう。Rubyでの保護とプライベートの概念は理解していますが、Railsアプリのさまざまな部分(モデル、コントローラー、ヘルパー、テスト)のコンテキスト内でこれらのタイプの可視性が使用される一般的な方法の説明をもっと探しています。 。たとえば、パブリックコントローラメソッドはアクションメソッドであり、アプリケーションコントローラの保護されたメソッドは、複数のコントローラからアクセスする必要がある「ヘルパーメソッド」などに使用されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.