目录
1、idea2019
2、maven3.8.4
3、JDK17
第一步:打开idae选择创建项目

第二步、编辑项目创建相关信息

第三步、配置安装的maven

第四步、 创建相关接口与实现类

- /**
- * 持久层
- */
- public interface UserDao {
- /**
- * 根据id删除用户信息
- */
- void deleteById();
- }
- public class UserDaoImplByMysql implements UserDao {
- @Override
- public void deleteById() {
- System.out.println("mysql用户id删除用户信息。。。。");
- }
- }
- /**
- * 业务层
- */
- public interface UserService {
- /**
- * 删除用户信息
- */
- void deleteUser();
- }
- public class UserServiceImpl implements UserService {
- UserDao userDao = new UserDaoImplByMysql();
- @Override
- public void deleteUser() {
- userDao.deleteById();
- }
- }
- /**
- * 表述层
- */
- public class UserAction {
- private UserService userService = new UserServiceImpl();
-
- /**
- * 删除用户信息请求
- */
- public void deleteUserRequest(){
- userService.deleteUser();
- }
- }
测试程序:

上面代码违背OCP开闭原则和依赖倒置原则。
2.1、OCP是软件七大开发原则当中最基本的一个原则,开闭原则。开放:对扩展开放,关闭:对修改关闭。
2.2、OCP原则是最核心的,最基本的、其他的六个原则都是为这个原则服务的。
2.3、OCP开闭原则的核心:在扩展系统功能的时候,不修改以前写好的功能,就符合OCP原则,
当我们修改原有功能代码后,其功能也需要重新进行测试,非常麻烦。
1、原则:面向接口编程、面向抽象编程,不要面向具体编程。
2、目的:降低程序的耦合度,提高扩展力。
3、高层模块不应该依赖低层模块。
控制反转:(Inversion of Control)
反转主要做了两件事情:①、在程序中不在使用硬编码的方式new对象了(new对象的权力交出去)
②、在程序中不在采用硬编码的方式来维护对象的关系。
控制反转是一种编程思想,也可以理解为一种新型的设计模式。