传统的编写业务层的service类是为每个实体对象生成一个DAO,然后再每个实体DAO对应的service类中注入DAO属性作为服务层组件。这样做代码的可读性很好,层次分明,逻辑清晰。是一种较好的设计方式。
如果考虑到代码软件最本质的特征-复用。减少不必要的编写。我们可以充分考虑Java语言的特征,诸如反射、多态、继承,以达到最大程度的重构。
由此,我们在编写DAO层代码时,可设计一个BaseDAO类,抽象出最顶层的公有行为。
public void save(Object entityObj);
public void update(Object entityObj);
public Object findById(Class cls, Integer id);
public List<Object> findByProperty(String hql, Object property);
public List<Object> findByHql(String hql, Object[] values);
public List<Object> findBySql(String sql, Object property);
public List<Object> findBySql(String sql, Object[] values);
在业务层,编写服务组件时,也可以抽象出一个BaseService类,集合公有行为。
public class BaseService {
private BaseDAO baseDAO;
// setter method
// 共有方法
}
其他业务层服务组件,可以
extends BaseService
达到公有复用。
当然,配置文件需配置bean的父子关系.
<bean id="" class="" parent="BaseService"></bean>
这当然只是一种很简单的方法,你也可以从中抽象和重构出更简单更短小的设计。
分享到:
相关推荐
总的来说,"CreateCodeC#三层结构代码生成软件V1.0.1"是一个旨在帮助C#开发者快速构建三层架构应用的工具,利用反射和泛型技术自动创建代码,但其当前版本可能存在一些问题,推荐使用更新的版本。理解和掌握这些知识...
8. **测试和调试**:提供一些关于如何测试和调试三层架构应用的建议。 《文档声明.txt》可能包含关于该PDF文档的版权信息、作者声明或使用条款,但具体内容需要打开文件查看。 总的来说,ASP.NET 2.0三层架构是一...
2. **Spring MVC**:作为Spring框架的一部分,Spring MVC负责处理HTTP请求,提供模型-视图-控制器(MVC)的架构模式,使得业务逻辑、数据和视图层分离,提高了代码的可维护性和可测试性。 3. **MyBatis**:JeeSite...
此外,VB也支持模块化编程,可以创建标准模块或窗体模块来封装功能,提高代码复用性。比如,你可以创建一个通用的数据库连接模块,供多个系统调用,实现数据访问的统一。 VB的小系统通常包括以下几个部分:用户界面...
- 通过继承和多态提高代码的复用性。 #### 四、调试技巧 调试是软件开发过程中不可或缺的一部分,正确的调试方法可以大大提升开发效率。文档中提到的一些调试技巧包括: ##### 4.1 编译时的错误 在编译阶段发现...
1. **妙用宝宝起名大全**:建议开发者使用一些看似随意的名字,如“Fred”或“adsf”。这类名字简单易记,但缺乏意义,使得其他开发者难以理解其用途。 2. **单字母变量名**:使用单字母变量名(如`a`、`b`、`c`等)...
5. **utils** 文件夹:可能包含一些通用的工具函数,如网络请求、数据处理、日期格式化等,方便在多个页面之间复用。 6. **images** 或 **assets** 文件夹:存储图片资源,这些图片会被引用到小程序的各个页面中。 ...
1. **分层架构**:Spring鼓励采用分层架构,将应用程序划分为不同的层次,如表现层、业务层、数据访问层等。每一层都有其特定的责任,有助于保持代码的清晰和模块化。 2. **非侵入式设计**:Spring的组件设计遵循非...
以上只是一些基本的J2EE代码编写规范要点,实际的规范文档会包含更多细节,比如编码风格、日志记录、国际化与本地化处理、多线程编程的注意事项等。遵循这些规范,可以显著提高J2EE项目的质量和可维护性。
其他层则包含一些辅助性的文档和文件。 5. 文件结构:在文件管理方面,文档规定了文件的结构,包括版权和版本声明、头文件的结构、定义文件的结构。这是为了确保项目文件的整洁和一致性。 6. 命名规则:包括对枚举...
上次我们搭建了一个基本的 express 后台,但是这样的项目结构的可扩展性,维护性和代码复用性都不是很好,参照之前学习 JavaWeb 时候的四层架构设计,用分层的思想来对 express 进行一点小优化,进一步提高代码的可...
为了解决这些问题,一种改进的SSH架构被提出,通过重新定义分层结构,实现业务代码的共享和复用。主要变化在于: 1. **业务代码统一实现IBusinessService接口**,这使得Action类的数量得以减少,因为大多数业务逻辑...
2. **weather-common**: 这个模块可能包含了项目中可复用的工具类、常量、枚举等通用组件,例如日期时间处理、字符串操作等,旨在提高代码的重用率和减少代码冗余。 3. **weather-manager-web**: 这部分是Web应用的...
6. **简化SQL操作**:尽量避免复杂的多表联查,这会增加数据库压力,不利缓存,并降低代码复用性。尽量使用简单查询。 7. **批量获取数据**:在循环中避免频繁执行findXXById,可以使用findXXByIds批量获取数据,...
Servlet负责处理服务器端的业务逻辑,JSP用于生成动态网页,而JavaBean则封装了可复用的业务组件。 2. **MVC设计模式**: Model-View-Controller模式是JavaWeb开发中常用的设计模式,用于分离应用程序的数据模型、...
作者提出的基于嵌入式多态SQL的ORM实现方法具有几个显著特点:简单可行、代码复用率高以及易维护。在实现对象关系映射时,该方法将SQL语句嵌入到业务类中,并充分利用对象之间的继承关系。这样做的好处是,可以将...