典型的なDAO/AbstractFactoryパターンを実装しました。デザインは次のようになります。
DAOFactory-MySQLFactory/SQLiteFactoryのいずれかのインスタンスを返します
- MySQLFactory-MySQLDBと通信するDAOを返します
- SQLiteFactory-SQLiteDBと通信するDAOを返します
物事は大丈夫です。ただし、2つの実行可能ファイルを作成する必要があります。顧客に提供される実行可能ファイルは、SQLiteFactoryインスタンスと関連するDAOを使用します。その実行可能ファイルには、MySQLFactoryに関連するクラスを含めたくありません。これらのクラスを削除すると、DAOFactoryクラスがクラスローダーによってロードされている実行時にClassNotFoundExceptionが表示されます。
実行時にMySQLFactoryが不要になるように、DAOFactoryを実装するにはどうすればよいですか?同じ問題が他の特定のクラスにも存在します。つまり、特定のクラスはアプリの社内バージョンにのみ必要です。顧客に出荷されるソフトウェアからクラスを除外できるようにするための実装の良い方法は何ですか?
ありがとうディープ