AOP前言篇----静态代理设计模式

本文探讨了在JavaEE分层开发中,Service层的重要性,指出Service层包含核心功能和额外功能(如事务、日志、性能监控等)。文章介绍了代理设计模式作为解决额外功能书写问题的方法,通过代理类为原始类添加额外功能,以保持原始类的简洁性。代理模式的关键要素包括目标类、目标方法、额外功能以及代理类实现相同接口。然而,静态代理存在类文件过多和额外功能维护困难的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.为什么需要代理设计模式

1.1问题

在javaEE分层开发中,那个层次对我们来讲最重要

DAO-----> Service ---> Controller
javaEE分层开发中,最为重要的是service层

service层中包含了那些代码?

service层中= 核心功能 +额外功能(附加功能)
1.核心功能:业务运算 DAO调用
2.额外功能:不属于业务  可有可无  代码量很小
事务、日志、性能...

额外功能书写在service层中好不好?

service层调用者的角度:需要在service层书写额外功能。
软件设计者:service层不需要额外功能

现实生活中的解决方式:
在这里插入图片描述

2.代理设计模式

2.1概念

通过代理类,为原始类(目标类)增加额外的功能
好处:利于原始类(目标类)的维护

2.2名词解释

1.目标类 原始类
	指的是 业务类(核心功能-->业务运算 DAO调用)
2.目标方法 ,原始方法
	目标类中的方法  就是目标方法
3.额外功能(附加功能)
	日志,事务,性能
	

2.3代理开发的核心要素

代理类=目标类(原始类)+额外功能+原始类实现相同的接口
房东————> public interface UserService{
		m1 方法1
		m2 方法2
}
UserServiceIml Implements UserService{
		m1 --->业务运算 DAO调用
		m2
}
UserServiceProxy impllements UserService{
		m1
		m2
		...
}

2.4编码

静态代理:为每一个原始类,手工编写一个代理类(.java.class)
在这里插入图片描述

1.5静态代理存在的问题

1.静态类文件数量过多,不利于项目管理
UserServiceImpl UserServiceProxy
orderServiceImpl  OrderServiceProxy
2.额外功能维护性差
代理类中 额外功能修改复杂(麻烦) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结构化思维wz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值