好处
- 将被依赖类的创建代码从 依赖类中移出,不用显式的写new。
- 可以单独维护 被依赖类的创建 过程。 方便该类的被共享。
- 如果该类初始化时,所需属性很多,使用配置,远比硬代码编写简单。
- 有多层依赖时,依赖关系的移出,事实上简化了 依赖关系的查看和维护。 因为对每个类而言,只需要关心这个类的依赖。
- 比如DataSource配置 数据库连接池时。
- 以WEB项目为例,Controller层只需要关心Service层,Service层只需要关心Dao层。
- 有可能一个Service中使用了N多的Dao,来实现一个方法中的逻辑。
- 但是Controller只要引用这个Service,调用这个方法。
1、自己去造。用java的话说就是调用者创建被调用者(IDAO dao=new DAO())
2、你可以要找到生产锤子的工厂,向工厂购买即可。对应java的工厂模式。
3、你可以打电话找到卖锤子的商店,让人把锤子送货上门。对应spring的依赖注入