spring与guice的区别

斧子的例子

借斧子的例子说一说spring与guice的区别。java

看下边的例子:对于不一样社会形态下一我的(java对象,调用者)须要一把斧子(java对象,被调用者)。spring

 

原始社会时

劳动社会基本没有分工,须要斧子的人(调用者)只好本身去磨一把斧子,每一个人拥有本身的斧子,若是把你们的石斧改成铁斧,须要每一个人都要学会磨铁斧的本领,工做效率极低。对应Java里的情形是:java程序里的调用者new一个被调用者的实例。类耦合度极高,修改维护烦琐,效率极低。eclipse

 

工业社会时

工厂出现,斧子再也不由普通人完成,而由工厂生产,当人们须要斧子的时候,能够到工厂购买斧子,无需关心斧子是怎么制造出来的,若是废弃铁斧为钢斧,只需改变工厂的制造工艺便可,制做工艺是工厂决定的,工厂生产什么斧子,工人们就得用什么斧子。对应的java里的情形是:Java程序的调用者能够以来简单工厂建立被调用者,变化点被隔离到了简单工厂里,虽然耦合度下降,可是调用者会和工厂耦合,并且须要定位本身的工厂ui

 

近代工业社会

工厂蓬勃发展,人们须要什么斧子,只须要提供一个斧子图形,商家会按照你提供的图形将你的斧子订作好,送上门。对应Java里的情形:spring的依赖注入spa

 

按须要分配社会

信息进入现代化,人们再也不去工厂购买斧子,再也不拘泥于须要什么斧子事先画好什么样的图形,只须要打个电话,描述一下须要什么类型的斧子,或许想打造一个物美价廉的斧子,商家会根据市场零件的价格,计算出最优制做工艺,打造最适合的斧子送过来,更加信息化,更加人性化。对应Java里的情形:基于描述的注入,动态的,灵活简单的注入,如:Guice。对于该不应使用Guice,我想也是仁者见仁,智者见智,就像好多论坛里动不动有人会在那里讨论到底学Java仍是学.net或者是使用eclipse仍是Jbuilder的这类无聊话题,适合和知足项目需求的,又能省工省力简单的完成工做的,就是最好的。.net

相关文章
相关标签/搜索