How would you transform your current business level into an IOC style?

How would you convert my current business logic layer method to an IOC?

public static List<User> GetUsers()
{
    MyDBProvider db = new MyDBProvider();

    return db.GetUsers();
}

      

+1


a source to share


2 answers


List<User> users = GetUsers(new MyDbProvider());

List<User> GetUsers(IDataProvider provider){
    return provider.GetUsers();
}

      



+3


a source


I would probably get rid of the static method and use a more object oriented beginner approach.



public class UserRepository {
    private DBProvider provider;

    public DBProvider getProvider() { return provider; }
    public void setProvider(DBProvider provider) { this.provider = provider; }

    public List<User> getUsers() { return getProvider().getUsers(); }
}

public interface DBProvider {
    List<User> getUsers();
}

public class MyDbProvider implements DBProvider { ... }

      

0


a source







All Articles