一個小例子認識工廠模式
阿新 • • 發佈:2019-01-25
工廠模式是我們最常用的例項化物件模式了,是用工廠方法代替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(); } }
工廠模式:
將不同的資源類全部實現一個介面
設定一個工廠類
在工廠類中返回一個所需要的資源類
在應用中直接呼叫工廠提供的的方法即可
此種方式的優點在於更換資源類的實現時,只需要更改工廠類即可,而不需要修改應用