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