**AOP:**面向切面编程
**IoC:**反转控制
**耦合:**程序间的依赖关系
实际开发中:应该做到,编译期不依赖,运行时才依赖
解耦的思路:
第一步:使用反射来创建对象,而避免使用new关键字
第二步:通过读取配置文件来获取要创建的对象全限定类名
这里用jdbc做的演示
加载驱动:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());这种就是高度耦合的
用Class.forName就是反射,达到了解耦的目标
我们用工厂类来实现解耦,给工厂类字符串,而不是new对象
Bean:可重用组件
JavaBean就是用java写的,比实体类的共年更宽大
让工厂类去读取配置文件找全限定类名,我们只给工厂类最简单的接口名
配置文件:
工厂类:
读取配置文件
提供获取bean对象的工厂类方法
深加工版 工厂类
因为dao和service不需要多例(没有有关类属性的操作)
所以,做成单例的(不用每次都新建对象,更快),放到Map里随取随用最好。
升级版 工厂类提供的外界获取对象的方法