特定のBPMベンダーと連携する社内エンタープライズアプリケーション(EJB2)があります。社内アプリケーションの現在の実装では、ベンダーのAPIによってのみ公開されるオブジェクトを取得し、APIの公開されたメソッドを使用してそのオブジェクトを変更します。密接に結合された設計を改善するのに役立つ
私は何とか内部オブジェクトをこの外部オブジェクトにマップする必要があると思っていますが、それは単純すぎるように思えますし、これを行うための最善の戦略についてはあまりよく分かりません。過去にこのような状況をどのように処理したかについて、誰かが何らかの光を当てることができますか?
私はこのベンダーのソフトウェアを「ブラックボックス」にしたいので、必要に応じて簡単に置き換えることができます。どのように内部オブジェクトをこの公開されたAPIオブジェクトにマップするかは、設計上の観点から最良のアプローチは何でしょうか?私の社内アプリケーションはAPIとまだ話している必要があるので、両者の間にいくつかの依存関係が存在することを覚えておいてください。しかし、私はjunitを使ってこのソフトウェアとは別にテストすることもできます。
おかげで、 ジェイソン
アプリケーションに特定の制約がある場合を除き、以下の回答は、標準的な抽象的な方法(インターフェイスを使用)を示しています。私はあなたがすでにこれを知っていたと確信していますので、あなたのアプリにこのような困難をもたらす特定のものがあるかどうか不思議です。また、ここでピギーバックするのではなく、本当に疎結合したい場合は、 "new MyAPIEndpoint();ではなくSpring IOCを使用できます – Victor
私はいくつかのタイプのファサードを作ることが行く方法だったというより多くの確認を探していました。なぜここでやっていないのか分からなかったので、私は何かが欠けていると思った。 Springは理想的なものであり、今後そのフレームワークに移行したいと考えています。 – JasonH