UI层 业务层,业务层依赖数据层
依赖倒置后
UI层依赖业务接口, 业务层依赖数据接口
^ ^
| |
业务层实现 数据层实现
如果我们使用接口先把dal能干什么进行定义,然后各个具本的DAL来实现这个接口,那么调用方就只依赖这个接口了.大家都经这个接口为标准,具体的实现细节就被隐起来了.
那么不管DAL的具体实现如何.调用方只要这样用,如:
dalInterface dal=DALFactory.getdal("XXX");
dal.doSomething()
接口是解决依赖的DIP
接口被置顶,各层之间的依赖脱勾.不再层层依赖.
工业上用的系统稳定性排第一,可扩展性排第二,性能排第三