問題タブ [access-specifier]
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.
ruby - Rubyのインスタンスからプライベートクラスメソッドを呼び出す方法はありますか?
以外self.class.send :method, args...
はもちろん。コードを複製せずに、クラス レベルとインスタンス レベルの両方でかなり複雑なメソッドを使用できるようにしたいと考えています。
アップデート:
@ジョナサン・ブラナム:それは私の仮定でしたが、他の誰も方法を見つけていないことを確認したかった. Ruby での可視性は、Java での可視性とは大きく異なります。private
これはプライベートクラスメソッドを宣言しますが、クラスメソッドでは機能しないこともまったく正しいです。
c++ - C ++では、クラス/構造体のパブリック、プライベート、および保護されたメンバーの言語によってグループ化が強制されないのはなぜですか?
論理的なグループ化を許可するだけですか?
ruby - Ruby のプライベート モジュール メソッド
2 つの質問があります
ベストプラクティス
- パブリック インターフェイスを使用してデータ構造に対して何らかの操作を実行するアルゴリズムがあります。
- 現在、これは多数の静的メソッドを持つモジュールであり、1 つのパブリック インターフェイス メソッドを除いてすべてプライベートです。
- すべてのメソッド間で共有する必要があるインスタンス変数が 1 つあります。
これらは私が見ることができるオプションです。どれが最適ですか?:
- 静的 (Ruby では「モジュール」) メソッドを持つモジュール
- 静的メソッドを持つクラス
- データ構造に含めるためのMixinモジュール
- そのデータ構造を変更するアルゴリズムの部分 (非常に小さい) をリファクタリングし、アルゴリズム モジュールの静的メソッドを呼び出す mixin を作成します。
技術部
プライベート Module メソッドを作成する方法はありますか?
そこprivate
には何の効果もないようですが、問題なく呼び出すことができますThing.priv
。
oop - オブジェクト(インスタンス)を使用してクラスのプライベートメンバー変数にアクセスします
これがVB.NETコードスニペットです
オブジェクトを使用してプライベートメンバーにアクセスすることはできないと思いましたが、おそらくCLRでアクセスできます。つまり、アクセス修飾子はタイプに基づいており、そのタイプのインスタンスには基づいていません。また、C++でもそれが可能だと聞いています。
これの理由は何でしょうか?
編集:
RoBorgによって提供されたmsdnリンクからのこの行は、この動作を説明していると思います。「含まれる型内のコードを含む、プライベート要素を宣言する型のコードは、要素にアクセスできます」
ruby - Rubyのクラスメソッドからプライベートインスタンスメソッドを呼び出す
クラスメソッドから呼び出すことができるプライベートインスタンスメソッドを作成できますか?
これがかなり初歩的な質問である場合はお詫びしますが、私は解決策への道をグーグルで検索することができませんでした。
java - Java のインターフェース: 実装されたメソッドを保護または非公開にすることはできません
インターフェイスはパブリックでなければならないことを知っています。しかし、私はそれを望んでいません。
実装したメソッドは、それ自体のパッケージからのみアクセスできるようにしたいので、実装したメソッドを保護したいと考えています。
問題は、インターフェイスまたは実装されたメソッドを保護できないことです。
回避策とは何ですか? この問題に関連する設計パターンはありますか?
Javaガイドから、抽象クラスも仕事をしません。
c++ - プライベート、パブリック、保護された継承の違い
C++
public
の、private
、およびprotected
継承の違いは何ですか?
SOで見つけたすべての質問は、特定のケースを扱っています。
ruby - Ruby メソッドの instance_eval() と send() は非公開の可視性の利点を無効にしていませんか?
Widget クラス (下記) に関連する上記の例を見ると、send および instance_eval メソッドは、非公開および保護された可視性によって提供されるすべての保護に違反しています。もしそうなら、あなたの定義が尊重されるという保証がないのに、なぜRubyでプライベートで保護されたアクセスに煩わされるのですか?
ruby - Rubyのプライベート/保護ブロック?
Ruby には、次のように保護/プライベート ブロックを定義する機能がないようです。
比べたらこれはいいだろう
保護されたメソッドの後に「公開」するのを忘れるかもしれません。
これは、メタプログラミングを使用して実装できるようです。どのようにアイデアはありますか?
c++ - 仮想機能が非公開になるのはなぜですか?
私はいくつかのコードでこれを見つけました:
これには何か目的がありますか?
(私はいくつかのコードを VS から G++ に移植しようとしていますが、これが私の注意を引きました)