软件的三层架构&需要遵循的原则

三层架构

分层模式
分层模式是最常见的一种架构模式
分层模式是很多架构模式的基础

分层

将解决方案的组件分隔到不同的层中
在同一个层中组件之间保持内聚性
层与层之间保持松耦合

为什么需要分层模式?

1:团队开发,变于管理
三层架构使得合作开发成为可能,由于各层相互独立,一个组只需要负责块就行
2:方便查找和修改bug
上一层依赖于下一层,如果测试下一层没有问题,那么问题就只有可能出现在本层了,便于发现和修改bug,体现了“高内聚,低耦合”的思想

实现分层时需要遵循哪些原则?

上层依赖其下层,依赖关系不跨层
表示层不能直接访问数据访问层
上层调用下层的结果,取决于下层的实现
下一层不能调用上一层
下一层不依赖上一层
上层的改变不会影响下一层
下层的改变会影响上一层得到的结果
在上一层中不能出现下一层的概念
分工明确,各司其职

分层开发的优势有哪些?

1:可维护性:如果需求变动,只要相应调整某一层的实现;
2:可管理性:分层有利于分工合作
3:可扩展性:增加功能只需要修改某一层即可

分层开发的特点:

下层不知道上层的存在
仅完成自身的功能
不关心结果如何使用
每一层仅知道其下层的存在,忽略其他层的存在
只关心结果的取得
不关心结果的实现过程
JSTL通常会与EL表达式合作实现JSP页面的编码

实体类贯穿三层,在三层中都可以调用
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

分层代码:这里我使用的是第一种方法

package com.zking.IUserDao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.zking.uitl.DBHelp;
/**
 * dao方法  增删改查
 * 
 * @author JIE
 *
 * @date 2022年4月6日 下午4:10:42
 */
public class UserDao implements UserDaoimpl{
	Connection con=null;
	PreparedStatement ps=null;
	ResultSet rs=null;
	/**
	 * 用户登陆验证
	 * @param name 用户名
	 * @param pwd 用户密码
	 * @return 成功与否
	 */
	public boolean login(String name,String pwd) {
		boolean f=false;
		try {
			con=DBHelp.getcon();
			String sql="select * from tb_web where sname=? and spwd=?";

			PreparedStatement ps=con.prepareStatement(sql);
			ps.setString(1,name);
			ps.setString(2,pwd);
			
			ResultSet rs=ps.executeQuery();
			if(rs.next()){
				f=true;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelp.myClose(con, ps, rs);
		}
		
		return f;
	}
 
}

package com.zking.IUserDao;


public interface UserDaoimpl {
	/**
	 * 用户登陆验证
	 * @param name 用户名
	 * @param pwd 用户密码
	 * @return 成功与否
	 */
	public boolean login(String name,String pwd);
	
}

package com.zking.biz;

/**
 * 用户业务逻辑层
 * 
 * @author JIE
 *
 * @date 2022年4月11日 下午5:59:12
 */
public interface Userbiz {
	/**
	 * 用户登陆验证
	 * @param name 用户名
	 * @param pwd 用户密码
	 * @return 成功与否
	 */
	public boolean login(String name,String pwd);
	
}

package com.zking.biz;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.zking.IUserDao.UserDao;
import com.zking.IUserDao.UserDaoimpl;
import com.zking.uitl.DBHelp;

public class Userbiziml implements Userbiz{
	
	UserDaoimpl iud=new UserDao();
	/**
	 * 用户登陆验证
	 * @param name 用户名
	 * @param pwd 用户密码
	 * @return 成功与否
	 */
	public boolean login(String name,String pwd) {
		
		
		return iud.login(name, pwd);
	}
}


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值