Skip to content

Instantly share code, notes, and snippets.

@carloszan
Last active August 2, 2020 23:28
Show Gist options
  • Save carloszan/800d05a38e65077930a2f403781861c7 to your computer and use it in GitHub Desktop.
Save carloszan/800d05a38e65077930a2f403781861c7 to your computer and use it in GitHub Desktop.
Introdução a padrões de projeto
public interface IDatabase<TEntity>
{
Task SaveAsync(TEntity entity);
Task<TEntity> Get(Guid id);
Task<ICollection<TEntity>> GetAll();
Task Delete(Guid id);
Task<TEntity> Update(TEntity entity);
}
public class UserMongoDb : IDatabase<User>
{
Task SaveAsync(TEntity entity)
{
...
}
Task<TEntity> Get(Guid id)
{
...
}
Task<ICollection<TEntity>> GetAll()
{
...
}
Task Delete(Guid id)
{
...
}
Task<TEntity> Update(TEntity entity)
{
...
}
}
public class UserService
{
private readonly IDatabase<User> _database;
public UserService(
IDatabase<User> database
)
{
_database = database;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment