作为一个初学者,想要在这方面获得巨大的提升,必然要耐得住寂寞,和源码死磕
-
创建一个Spring Boot项目
image-maven -
目录结构为
image-stuct - 代码实现为
package cn.itycu.service;
/**
* @author 披风少年
* @version 1.0
* @date 2020/5/23 15:06
* 账户的业务层接口
*/
public interface IAccountService {
/**
* 模拟一个保存
*/
void saveAccount();
}
-----------------------------分割线-------------------------------
package cn.itycu.service.impl;
import cn.itycu.dao.IAccountDao;
import cn.itycu.dao.impl.AccountDaoImpl;
import cn.itycu.service.IAccountService;
/**
* @author 披风少年
* @version 1.0
* @date 2020/5/23 15:11
* 账户的业务层实现类
*/
public class AccountServiceImpl implements IAccountService {
private IAccountDao accountDao = new AccountDaoImpl();
public void saveAccount() {
accountDao.saveAccount();
}
}
-----------------------------分割线-------------------------------
package cn.itycu.dao;
/**
* @author 披风少年
* @version 1.0
* @date 2020/5/23 15:15
* 账户的持久层接口
*/
public interface IAccountDao {
/**
* 模拟保存账户
*/
void saveAccount();
}
-----------------------------分割线-------------------------------
package cn.itycu.dao.impl;
import cn.itycu.dao.IAccountDao;
/**
* @author 披风少年
* @version 1.0
* @date 2020/5/23 15:16
* 账户的持久层实现类
*/
public class AccountDaoImpl implements IAccountDao {
public void saveAccount() {
System.out.println("保存一个账户");
}
}
-----------------------------分割线-------------------------------
package cn.itycu.ui;
import cn.itycu.service.IAccountService;
import cn.itycu.service.impl.AccountServiceImpl;
/**
* @author 披风少年
* @version 1.0
* @date 2020/5/23 15:21
* 模拟一个表现层,用于调用业务层
*/
public class Client {
public static void main(String[] args) {
IAccountService accountService = new AccountServiceImpl();
accountService.saveAccount();
}
}
通过 表先层 => 业务层 => 持久层 的一个 MVC 三层架构没有问题
但是 表现层在调用业务层时关键的new关键字和业务层在调用持久层时关键的new关键字,就是我们在实际开发中急需解决的问题,因为这样一种逻辑结构具有很强的耦合性使我们的代码独立性很差