1.在Service层当中要想获取一个dao层的对象,我们可以创建一个对象
UserDao userDao = new UserDao();
缺点:耦合性强,无多态思想
耦合性强:userDao需要在userService当中创建,后期我们需要修改代码的时候,必须找对应的源码,去改写。
2.实现类的出现
userDao userDao = new UserDaoImpl();
缺点:耦合性强
优点:有多态思想
多态思想:一个接口可以有多个实现,如果后期行为改变的时候,我们只需要切换实现类就可以
3.
userDao userDao = BeanFantory.getBean(‘userDao’);
对应的配置文件
解释:我们在用BeanFactory的getBean方法时,利用字符串UserDao找到对应的配置文件,找到class,通过全包名利用反射原理创建对象并返回
优点:解耦合,多态思想
后期需要修改行为的时候,只需要修改配置文件就可以,不需要找源码