1.15 Spring - Pros and Cons
Spring現在確實是Java圈子中的當紅框架, 但沒有東西是完美的, 我想這邊就整理一下自己認為的pros/cons.
Pros
Component跟container之間的解耦
Component跟dependency之間的解耦
提供了一種管理物件的機制, 把可以把中間層有效地組織起來, 就像膠水一樣
有利於培養code on interface的習慣
目的之一是為了寫出易於測試的程式
一致的資料存取介面
非侵入性(non-intrusive), 讓你的application對Spring的依賴盡可能的減到最小程度
消除許多軟體工程中常見的對singleton的過度使用
較為輕量級的解決方案
IoC將建立物件的職責從程式中抽離到了框架中, 如setter/constructor injection
Cons
IoC, AOP這類的技術, 立意都是想將原本位於application中的hard-code邏輯抽出並且移至配置文件中(或其他形式), 大部分人都覺得這是在提高可維護性, 但若從以下幾點來看的話, 也許是缺點, 尤其是當你面對一個陌生的系統, 或是專案人員變動頻繁的情形:
中斷了application的邏輯, 使程式變得不完整, 不直觀. 單從source無法完全把握application的所有行為
將原本應該寫成code的邏輯變成了configuration, 可能會增加出錯的機會與負擔
有時候你會發現維護程式竟然比維護config file還要輕鬆, 畢竟config多了之後, 程式的邏輯性跟可讀性多少都會降低一些
有一種說法叫"overbean", 就是你什麼東西都要把它變成bean, 太過頭反而會有點亂
Last updated