使用接口時,應該從何處檢索每個對象的硬實現。這是通過爲每種類型創建一個工廠對象來完成的嗎?使用接口時,具體對象應該總是由工廠方法返回嗎?
IRepository<User> userRepository = new UserRepository(connection); // Needs a dbconnection
userRepository.Create(user);
//Is this the best way?
IRepository<User> userRepository = RepositoryFactory.GetUserRepository(connection);
public static class RepositoryFactory
{
public static IRepository<User> GetUserRepository(DbConnection connection)
{
return new UserRepository(connection);
}
}
什麼是最合理的方式來獲得UserRepository對象的工作?如果我使用UserRepository的工廠對象,我是否傳入連接對象或該流程是什麼?