我們實現了典型的DAO /抽象工廠模式。設計是這樣的:Java DAO模式和運行時依賴關係
DAOFactory - 返回要麼MySQLFactory的實例/ SQLiteFactory
- MySQLFactory - 回報的DAO,爲MySQL數據庫會談
- SQLiteFactory - 回報的DAO是會談的SQLite數據庫
事情很好。但是,我們需要創建兩個可執行文件:向客戶提供的可執行文件使用SQLiteFactory實例和相關的DAO。在那個可執行文件中,我們不想包含任何與MySQLFactory相關的類。如果我刪除這些類,那麼在類加載器加載DAOFactory類時,運行時會看到ClassNotFoundException。
我們如何實現我們的DAOFactory,以便在運行時不需要MySQLFactory?對於某些其他類也存在同樣的問題,即只有內部版本的應用需要某些類。什麼是一種很好的實施方式,以便我們可以將軟件中的課程排除到客戶手中?
感謝 深