![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?8acaa2e)
No.1ベストアンサー
- 回答日時:
Springはそれほど本格的に使ったわけではないんですが・・・。
DIでは、POJO(Plain Old Java Object)を利用しますから、やたらと重たいEJBより動作は軽快ですね。また、単なるサーブレットコンテナ(内のDIコンテナ)で動くので、EJBコンテナを必要とするEJBよりサーバも軽快です。
それから、DIではオブジェクトへの値設定などはすべてソースコードから切り離されますから、それらの修正のためにクラスをリコンパイルする必要がありません。その点、ちょっとした修正のためだけにプロジェクトをリビルドしデプロイするEJBより開発も軽快でしょう。
工程数そのものにどれぐらい影響があるかはちょっとわからないのですが、そうした「すべてにおいてフットワークが軽くなる」という利点はあります。
ただ、DIの最大のメリットは、開発そのものより、その後のメンテナンスだと思います。プログラムってのは作って終わりではなくて、その後に何度も何度も修正します。基本が出来上がると、それを継ぎはぎして使い続けるわけです。DIではクラス間の結びつきが粗ですので、途中で一部を置き換えたりするのも簡単ですし、設定の変更程度ならコードを一行も書き換える必要はありません。
システムのライフサイクルを考えるとき、DIを導入した方が後々の改修などでは大幅に手間が少なくすみ、システム自体も長生きできるように思えます。
デザインパターンなどは必要なくなるのか?というと、これは全く別の話でしょう。DIでもデザインパターンは使われます。DIは「いかにしてクラスから依存性を切り離すか」の問題解決技法であり、システム全体のデザインなどに関わるものではないように思えます。現に、SpringもMVCにそって設計されていますし、Strutsなどと併用することも考えられています。
もちろん、DIを導入することで変わる部分はありますけど、デザインパターンの考え方自体はそのままいきていますから、不要となるわけではないと思います。
ちなみに、EJB 2.0に取って代わるということがいわれましたが、EJB 3.0では逆にDIを取り込んでますので、今後は「DIによるライトウェイトなEJB」という不可思議なものが生まれそうです(笑)。ですので、EJBがなくなることはないかと思います。
以上、まぁ個人的な意見ということでご参考程度に。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 賃貸マンション・賃貸アパート 周囲に気づかれずアパートもしくは貸しコンテナを借りる方法 1 2022/07/31 18:18
- デジタルカメラ 動画撮影に使うレンズ。どちらのレンズがいいか悩んでいます 1 2023/01/02 18:21
- 数学 『iの微分』 7 2023/02/06 19:45
- 法学 既判力 時的限界について 1 2023/03/15 11:46
- Word(ワード) ネットの文章をワードに貼り付けるとき、幅を広げる方法 6 2022/05/30 11:04
- 一眼レフカメラ canonのeosシリーズ使ってます。 広角レンズをレンタルしようと考えています。 canon純正 5 2023/02/20 23:33
- 書類選考・エントリーシート 志望理由のアドバイスお願いします!! 1 2022/09/23 11:53
- 工学 過渡現象 RL回路で 回路方程式 Ri+L(di/dt)=E 定常解 is=E/R 過渡解 Ri+L 1 2022/06/08 21:47
- 倫理・人権 同性婚を合法化したら、少子化が進むと考える人は、論理的思考ができないのでしょうか? 下に、同性間が合 11 2023/05/31 08:48
- デジタルカメラ 一眼レフ撮影画像の上端の一部が明るいです 2 2023/08/20 11:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の重複する値とその個数を...
-
数学の計算問題。 3年間同じク...
-
共通で使う関数を集めたクラス...
-
クラスにアクセスできません。
-
java eclipse 型に解決できません
-
packageとimport の違いって?
-
EclipseでJSPのコンパイルエラー
-
どこからも呼ばれていない無意...
-
アルキメデスの大戦の櫂はなぜ2...
-
複数のクラスで共通した関数を...
-
進学校通ってたんですけど、眼...
-
ViewGroup.LayoutParamsクラス
-
グローバルIPとプライベートIP...
-
「天声人語」をインターネット...
-
VB2008: クラスライブラ...
-
河合塾
-
中学2年です‼︎ 明日.学級の級長...
-
main()を持つクラスが2つ以上...
-
Java import.text.* とは?
-
VC++でMFCアプリ作成中です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の重複する値とその個数を...
-
「天声人語」をインターネット...
-
java eclipse 型に解決できません
-
グローバルIPとプライベートIP...
-
ポータブル電源を買おうと思う...
-
容姿について
-
自作のクラスファイルがインポ...
-
どこからも呼ばれていない無意...
-
UMLのクラス図はmain()も含むん...
-
同一パッケージにあるクラスが...
-
main()を持つクラスが2つ以上...
-
1 つのヘッダファイルに複数の...
-
アルキメデスの大戦の櫂はなぜ2...
-
dllと同じプロジェクトにする方法
-
IPアドレスの3バイト目の呼び方
-
3年間同じクラスになる確率
-
重複エラーを解決するには
-
同じパッケージ、クラス名が含...
-
コンボボックスのマウスホイー...
-
共通で使う関数を集めたクラス...
おすすめ情報