1. 程式人生 > >一個小例子認識工廠模式

一個小例子認識工廠模式

工廠模式是我們最常用的例項化物件模式了,是用工廠方法代替new操作的一種模式。

利用工廠模式可以降低程式的耦合性,為後期的維護修改提供了很大的便利。

下面通過一個小例子來解釋工廠模式的工作流程,本例在Java工程下建立,本例子的功能是:應用ServiceApp中如何呼叫不同Dao類中的方法(所有類均同包)

1.首先建立Dao.java介面作為基本dao的規範

package cn.smile.factory;

public interface Dao {
	public void fn();
}
2.建立不同的dao類UserMysqlDao.java和UserOracleDao.java,均實現dao介面

UserMysqlDao.java

package cn.smile.factory;

public class UserMysqlDao implements Dao{
	public void fn(){
		System.out.println("mysql:fn......");
	}
}

UserOracleDao.java

package cn.smile.factory;

public class UserOracleDao implements Dao{
	public void fn(){
		System.out.println("oracle:fn......");
	}
}

3.建立工廠類DAOFactory.java,返回一個需要的dao物件

package cn.smile.factory;

public class DAOFactory {
	public static Dao getDao(){
		return new UserMysqlDao();
		//使用Mysql資料庫時
//		return new UserOracleDao();
		//使用Oracle資料庫時
	}
}

4.建立應用ServiceApp.java,呼叫工廠提供的物件的方法即可

package cn.smile.factory;

public class ServiceApp {
	public void test(){
		DAOFactory.getDao().fn();
	}
	
	public static void main(String[] args) {
		new ServiceApp().test();
	}
}


工廠模式:
將不同的資源類全部實現一個介面
設定一個工廠類
在工廠類中返回一個所需要的資源類
在應用中直接呼叫工廠提供的的方法即可
此種方式的優點在於更換資源類的實現時,只需要更改工廠類即可,而不需要修改應用