Skip to content

Instantly share code, notes, and snippets.

@gabfssilva
Created October 21, 2017 01:51
Show Gist options
  • Save gabfssilva/5d7c355876ccc93c6531aa9e7323bc78 to your computer and use it in GitHub Desktop.
Save gabfssilva/5d7c355876ccc93c6531aa9e7323bc78 to your computer and use it in GitHub Desktop.
polymorphism ~ strategy
interface DatabaseAccess {
void save(Object entity);
}
class MySQL implements DatabaseAccess{
@Override
void save(Object entity) {
//saving obj into MySQL
}
}
class UserService {
DatabaseAccess db;
UserService(DatabaseAccess db) {
this.db = db;
}
void saveUser(User u){
db.save(u);
}
}
---------- TEST -----------
class DatabaseAccessMock implements DatabaseAccess{
@Override
void save(Object entity) {
//mocking insert
}
}
class UserServiceTest {
void test_save_user(){
UserService service = new UserService(new DatabaseAccessMock());
service.save(new User(...));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment