1.什么是OCP?
OCP是软件七大开发原则当中最基本的一个原则,开闭原则
对扩展开放,对修改关闭
2.OCP原则是最核心的,最基本的,其他六个原则都是为了这个原则服务的
3.OCP开闭原则的核心是什么?
只要你在扩展系统功能的时候,没有修改以前写好的代码,那么你就是符合OCP原则的,反之
,如果在扩展系统功能的时候,你修改了之前的代码,那么这个设计就是失败的,违背OCP原则
4.当进行系统功能扩展的时候,如果动了之前稳定的程序,修改了之前的程序,之前所有的程序都需要重新测试,这是不想看到的,因为很麻烦




UserAction依赖了具体的UserServiceImpl,UserServiceImpl依赖了具体的UserDaoIMplForMysql
上层依赖下层,这就违背了依赖倒置原则.只要"下层"一改动,"上层"就收到牵连(比如我们要连接Orcle数据库,那么就需要改动代码)
那什么叫符合依赖倒置原则?
上不在依赖下,表示符合依赖倒置原则.
依赖倒置原则的核心是:倡导面向接口编程,面向抽象编程,不要面向具体编程
可以采用"控制反转"这种编程思想来解决这个问题
控制反转:IoC(Inversion of Control)
反转的是两件事:
1.不在程序中采用硬编码的方式来new对象了(new对象不管了,new对象的权利交出去)
2.不在程序中采用硬编码的方式来维护对象关系了(对象之间的关系不管了,交出去)
控制反转:是一种编程思想,或者是叫做新型的设计模式,由于出现的比较晚,没有被纳入GoF23设计模式中
1.Spring框架实现了控制反转IoC这种思想
①Spring框架可以帮你new对象
②Spring框架可以帮你维护对象之间的关系
2.Spring是一个实现了IoC思想的容器
3.控制反转的实现方式有多种,常见的叫做依赖注入简称(DI)
4.控制反转是思想,依赖注入是这种思想的具体实现
5.依赖注入常见的两种方式:
①set注入(执行set方法注入)
②构造方法注入(执行构造方法注入)
6.依赖:A对象和B对象之间的关系,注入:是一种手段,通过这种手段,可以让A对象和B对象产生关系
依赖注入:对象A和对象B之间的关系,靠注入的手段来维护