1. 程式人生 > >Java提升——程式碼重用性

Java提升——程式碼重用性

在實際開發中,程式碼的重用性一直都是關注的重點。如何才能提高程式碼的重用性是很多人在思考的問題。

在學習提升程式碼重用性的時候,發現的一些技巧,寫下來以便以後回顧。

在Java Web中,通常採用MVC模式進行開發。在實際開發中,使用MVC5層架構進行細分,即檢視層,控制層,業務層,持久層,實體層。

使用的是SSM框架。

1、持久層

持久層主要的職責就是負責對資料庫的各種操作,講白了就是增刪改查。

一般情況下,一個實體類對應一個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<Person> selectByAll() throws Exception;

}

接著就去寫其他實體類對應的Dao,然後寫他個幾十個。

這樣寫的話程式碼的重用性就比較差。像這段程式碼裡的這幾個方法可以說在所有Dao類中幾乎都有,那為何不把它抽取出來封裝到一個類裡面去呢?

package cn.wzj.dao;

import java.util.List;


/**
 * Dao基礎介面
 * 
 * 把那些所有Dao類都通用的方法給抽取出來,涉及到實體類的地方,我們用泛型給它替換掉
 * 這樣就實現了簡單的封裝
 * @author apple
 */

public interface BaseDao<T> {

        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<T> selectByAll() throws Exception;
}

使用泛型就簡單的對Dao類中通用的方法封裝在一起。然後Person類對應的Dao就簡單多了。

package cn.wzj.dao;

import cn.wzj.po.Person;

public interface PersonDao extends BaseDao<Person>{}