問題タブ [access-levels]
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.
java - Java 保護されたアクセスが機能しない
Java には、次の 3 つのレベルのアクセスがあります。
- 公開 - 世界に公開
- プライベート - クラスのみに公開
- 保護 - クラスとそのサブクラスに対してのみ開かれます (継承)。
では、なぜ Java コンパイラはこれを許可するのでしょうか?
TestBlah.java:
Blah.java:
Bloo.java:
php - 一般的な CMS の役割とアクセス レベル
私は現在 CMS を作成していますが、既存の CMS が十分に堅牢なユーザー権限システムを持っていないことを誰か (ここにあったかもしれません) が批判したことを覚えています。私は方法を計画しましたが、それが少しきめが細かすぎるという通常の罠に陥っていると感じ、それを理解して実装することはエンドユーザーにとって恐ろしいことです。
権限を持つデフォルトのユーザーロールの範囲を持つことがこれに対する答えになると思うので、私の質問はこれだと思います:
CMS に表示したいデフォルトの役割と、これらに関連付けられる権限の種類は何ですか?
前もって感謝します!
language-agnostic - オブジェクトベースのアクセス レベルを持つ言語はありますか?
Java、C#、C++、および PHP のアクセス レベルに関する一般的な誤解は、それがクラスではなくオブジェクトに適用されるというものです。つまり、(たとえば) クラス X のオブジェクトは、別の X のプライベート メンバーを見ることができません。実際、もちろん、アクセス レベルはクラス ベースであり、1 つの X オブジェクトは別のオブジェクトのプライベート メンバーを簡単に参照できます。
オブジェクトベースのアクセス レベルを持つ言語は存在しますか? それらはクラスベースのアクセスの代わりですか、またはそれに加えてですか? この機能はプログラムの設計にどのような影響を与えますか?
java - ロガーはどのアクセスレベルに設定する必要がありますか?
私はSLF4Jを使用しており、その下にLog4Jがあります。ロガーをどのアクセス レベルに設定する必要がありますか?
c# - ネストされたクラスメンバーへのアクセスを囲んでいるクラスに制限する方法は?
ネストされたクラスのメンバーは、それを囲むクラスからはアクセスできるが、他のクラスからはアクセスできないように指定することはできますか?
これが問題の図です(もちろん、私の実際のコードはもう少し複雑です...):
クライアント コードが のインスタンスを作成できないようにしたいのですが、作成できる必要がありますJournalEntry
。Journal
コンストラクターをパブリックにすると、誰でもインスタンスを作成できます...しかし、プライベートにJournal
するとできなくなります!
JournalEntry
既存のエントリをクライアント コードに公開できるようにするため、クラスはパブリックである必要があることに注意してください。
任意の提案をいただければ幸いです!
更新: ご意見をお寄せいただきありがとうございます。私は最終的にIJournalEntry
、プライベート クラスによって実装されたパブリック インターフェイスを選択しましたJournalEntry
(私の質問の最後の要件にもかかわらず...)。
c# - C# で保護されたフィールドをプライベートに、プロパティを追加 - なぜ?
Visual Studio 2008 Team System で、C# プロジェクトの 1 つでコード分析を ([分析] メニューから) 実行しました。生成された警告の 1 つは次のとおりです。
Microsoft.Design : フィールド 'Connection._domain' は宣言型の外部で表示されるため、そのアクセシビリティをプライベートに変更し、フィールドへのアクセスを提供するために、現在のフィールドと同じアクセシビリティを持つプロパティを追加します。
次のフィールドを参照しています。
提案の背後にある理由がわかりません。これは私がやりたいと思うことです:
2 つの質問:
- コードに関して、提案が私に何をしてほしいのかを正しく理解しましたか?
- なぜ私にこれをさせたいのですか?
java - Javaリフレクションを使用して匿名クラスのメソッドを呼び出すときに例外にアクセスする
イベントディスパッチャーを使用して、モデルが変更されたときにサブスクライブされたリスナーに通知できるようにしようとしています。イベントディスパッチャは、ディスパッチ中に呼び出すハンドラクラスとメソッド名を受け取ります。プレゼンターはモデルの変更をサブスクライブし、変更時に呼び出されるハンドラー実装を提供します。
これがコードです(少し長いのでごめんなさい)。
EventDispacther:
モデル:
ModelChangedHandler:
プレゼンター:
主要:
今、私は「モデルが変更されました」というメッセージを受け取ることを期待しています。ただし、java.lang.IllegalAccessExceptionが発生します。クラスutils.EventDispatcherは、修飾子「public」を使用してクラスpresenter.Presenter$1のメンバーにアクセスできません。
責任のあるクラスは、プレゼンター内で作成した匿名のクラスであることを理解していますが、現在よりも「公開」する方法がわかりません。名前付きのネストされたクラスに置き換えると、機能するようです。PresenterとEventDispatcherが同じパッケージに含まれている場合にも機能しますが、それを許可することはできません(異なるパッケージの複数のプレゼンターがEventDispatcherを使用する必要があります)
何か案は?
ruby-on-rails - Rails authlogic : レベルの作り方は?
このチュートリアルに従って、Autologic を適切にセットアップしました。したがって、私のサイトには、「管理者」、「モデレーター」、「ユーザー」、「ゲスト」などのレベルのフォームが必要です。そのため、モデレーターがサイトの変更を行うことができない場合でも、管理者はすべてを行うことができます。また、ユーザーは破棄、更新、または作成できません。
c# - 保護されているか内部であるか、何を選択しますか?
必要なメソッドを持つクラスがある場合protected
、internal
。アセンブリ内の派生クラスのみがそれを呼び出すことができるようにしたいと思います。
protected internal
を意味するprotected
ので 、internal
あなたは選択をしなければなりません。この場合、何を選択しますか?protected
またはinternal
?
c# - 保護されたメンバー/フィールドは本当に悪いですか?
ここで、MSDN for C#の命名規則を読むと、プロパティがパブリックフィールドや保護されたフィールドよりも常に優先されることが示されていることがわかります。パブリックフィールドやプロテクトフィールドは絶対に使用しないでくださいと言われたこともあります。今、私はパブリックフィールドが必要な理由をまだ見つけていないことに同意しますが、保護されたフィールドは本当に悪いですか?
値を取得/設定するときに特定の検証チェックが実行されることを確認する必要があるかどうかはわかりますが、多くの場合、私の意見では余分なオーバーヘッドのように見えます。つまり、baseName、prefixName、suffixNameのフィールドを持つクラスGameItemがあるとします。プロパティ()またはアクセサメソッドの作成とパフォーマンスの低下の両方のオーバーヘッドを負担する必要があるのはなぜですか(C#
アプリケーションのすべてのフィールドに対してこれを行うと、特にのような特定の言語PHP
またはパフォーマンスのある特定のアプリケーションはゲームのように重要です)?