私は他のチームによって消費されるライブラリを開発しています。ライブラリには公開されているクラスやメソッドがありますが、sun.miscのような制限されたパッケージを作成する方法*
sun.miscパッケージのようなものはjavaにありますが、すべてのクラスはpublicですが、コンパイラはそれを使用している間に "制限エラー"をスローします。
私は他のチームによって消費されるライブラリを開発しています。ライブラリには公開されているクラスやメソッドがありますが、sun.miscのような制限されたパッケージを作成する方法*
sun.miscパッケージのようなものはjavaにありますが、すべてのクラスはpublicですが、コンパイラはそれを使用している間に "制限エラー"をスローします。
これを行う方法の1つは、アスペクト指向プログラミング(AOP)を適用することです。アクセスを制限することは、AOPに適した典型的な横断的な関心事です。
sun.miscパッケージでクラスを作成すると、誰かがパブリックメソッドにアクセスできなくなる可能性があることに気づいていません。チェックしたところ、sun.misc.MyCustomClassメソッドにアクセスできます。
パブリックメソッドを使用しているが、誰かにパブリックメソッドを使用させたくない場合は、アーキテクチャの悪い兆候だと思います。
はい、あなたは正しいです。私はそれが制限付きパッケージとして表示されることを意味しました。 – srinik
Netbeansを使用し、外部クラスはsun.misc.MyCustomClassのpublicメソッドにアクセスできます。 –
なぜすべてが公開されていますか?なぜプライベートを使用しないのですか? – Aidanc
実際には非常にレガシーなコードで、外部に公開されているいくつかの機能を廃止する必要があります。私は@Deprecatedを使ってみましたが、それを使っている人たちを止めません。 – srinik