Java提升——代码重用性

在实际开发中,代码的重用性一直都是关注的重点。如何才能提高代码的重用性是很多人在思考的问题。

在学习提升代码重用性的时候,发现的一些技巧,写下来以便以后回顾。

在Java Web中,通常采用MVC模式进行开发。在实际开发中,使用MVC5层架构进行细分,即视图层,控制层,业务层,持久层,实体层。

拿持久层来当例子吧。

持久层主要的职责就是负责对数据库的各种操作,讲白了就是增删改查。

一般情况下,一个实体类对应一个Dao。

在这个Dao上编写基本的增删改查方法。就像这样

package cn.wzj.dao;

import java.util.List;

import cn.wzj.po.Person;

public interface PersonDao {
	
	public void insert(Person person) throws Exception;
	
	public void delete(int id) throws Exception;
	
	public void update(Person person) throws Exception;
	
	public Person selectById(int id) throws Exception;
	
	public List selectByAll() throws Exception;

}

接着就去写其他实体类对应的Dao,然后写他个几十个。

这样写的话代码的重用性就比较差。像这段代码里的这几个方法可以说在所有Dao类中几乎都有,那为何不把它抽取出来封装到一个类里面去呢?

package cn.wzj.dao;

import java.util.List;


/**
 * Dao基础接口
 * 
 * 把那些所有Dao类都通用的方法给抽取出来,涉及到实体类的地方,我们用泛型给它替换掉
 * 这样就实现了简单的封装
 * @author apple
 */

public interface BaseDao {

        public void insert(T po) throws Exception;
	
	public void delete(int id) throws Exception;
	
	public void update(T po) throws Exception;
	
	public T selectById(int id) throws Exception;
	
	public List selectByAll() throws Exception;
}

使用泛型就简单的对Dao类中通用的方法封装在一起。然后Person类对应的Dao就简单多了。

package cn.wzj.dao;

import cn.wzj.po.Person;

public interface PersonDao extends BaseDao{}

 

 

 

 

 

你可能感兴趣的:(经验总结)