1.传统方式 UserService us = new UserService(); (UserService为一个java类,直接实例化成对象再进行操作)
2.面向接口 UserService us = new UserServiceImp(); (UserService为一个接口,UserServiceImp为接口实现类)
这样会导致web层和业务层产生耦合,程序设计应满足ocp原则
此时,若我想切换实现类,则我需要在代码中将UserServiceImp修改掉
3.工厂模式 创建工厂类,通过工厂类返回对象 但此时接口和工厂类又会产生耦合
此时,若我想切换实现类,则我需要在工厂类中将UserServiceImp修改掉
4. 工厂 + 反射 +配置文件 实现解耦