Old article but worth reading. It helps to understand the difference between : libraries and frameworks : Designing Reusable Classes