2008年8月20日 星期三

Library與Framework哪裡不同?

今天在Martin Fowler的Bliki上的Inversion Of Control那篇看到這段。這點之前我似乎隱隱中了解,不過說不出明確的定義。

Library是讓你呼叫的程式,而Framework會呼叫你寫的程式。或者說使用Framework時,你寫的程式是為了給Framework呼叫。像Servlet寫出來,是要放在Web Container給AP Server呼叫的。我們寫的Servlet有點像是Event程式一樣。

所以JavaMail是Library,而MVC Framework就是名副其實的Framework。Log4J是Library,JUnit是Framework。