一部のデフォルトのコンストラクターとセッターを使用できない/推奨されていないものとしてマークしたいと思います。注釈 に多少似ている@Deprecated
必要がありますが、同じ意味を持つべきではありません。一部のフレームワーク (Hibernate、Spring、Jackson) がそうさせているため、コンストラクターとセッターのみを追加しています。そのような構造が存在するかどうか知っていますか?
3 に答える
ここでの本当の答えは、API の外部にインターフェイスとファクトリのみを公開することです。これにより、フレームワークのために非プライベートにする必要があるメソッドを非表示にすることができます。
これができない場合は、メソッドをデフォルト スコープにするようにしてください ( ではなくprotected
)。
さらに、注釈を社内の目印として使用することもできます。私のプロジェクトでは、この目的のために注釈を作成しました: PresentForDependancyInjection
and/or FrameworkEntryPoint
. これらは装飾のみの注釈ですが、要点はわかります。
それらを作成しprotected
ます。これは、他の場所で呼び出されないようにするために一般的に使用される方法です。フレームワークがそれらを望んでいる場合、public
そうしないように構成できない限り、できることはほとんどありません。
私が理解している限り、いくつかのフレームワークの要件を手間をかけずに処理する方法を見つけたいですか? そのようなフレームワークによって処理されるコードを確認できるようにしながら、Java Bean 命名規則を回避したいですか?私の知る限り、プレーンな Java 言語を使用することは不可能ですが、AOP / バイトコード拡張ツールを使用して、クラスを装飾することができます。このようなフレームワークと互換性があります....これはうまくいくかもしれませんが、別の欠点があります: - 複雑さが増す - メンテナンスが難しいかもしれない
別の観点からフラクタル アプローチを使用することもできますが、このフレームワークは、私が知っている最も印象的なフレームワークの 1 つであるにもかかわらず、あまり知られていません。こちらをご覧ください: http://fractal.ow2.org/java.html
HTH ジェローム