Académique Documents
Professionnel Documents
Culture Documents
Sumrio
Apresentao 4
Sobre o Autor 5
Objetivos 6
Padres do eBook 7
Repository 9
Dependency Injection
Service Locator
Lazy Loading
Unit of Work
Decorator
Adapter Baixe a verso completa
gratuitamente.
Composite
Facade www.fabiosilvalima.net
Proxy
Singleton
Strategy
Chain of Responsibility
Factory
Flyweight
Outros eBooks 19
Agradecimentos 20
Feedbacks e Contato 21
fabiosilvalima.net 3
Programao no Mundo Real
DESIGN PATTERNS vol.1
Apresentao
Boa leitura!
fabiosilvalima.net 4
Programao no Mundo Real
DESIGN PATTERNS vol.1
Sobre o Autor
Boa leitura!
fabiosilvalima.net 5
Programao no Mundo Real
DESIGN PATTERNS vol.1
Objetivos
fabiosilvalima.net 6
Programao no Mundo Real
DESIGN PATTERNS vol.1
Padres do eBook
/*!
* INTERFACES devem ser o mais especfico
* possvel. Se perceber que h uma interface com
* muitos mtodos, tente quebrar em mais de uma
* interface.
*/
fabiosilvalima.net 7
Programao no Mundo Real
DESIGN PATTERNS vol.1
ApiClientException.cs
private string FilterResponse(IRestResponse
response)
{
var sb = new StringBuilder();
if (response == null)
{
return "Response is Null";
}
return "";
}
Aplicabilidade: 5
Nvel de dificuldade na implementao: 3
Refactor ps implementao: 1
Referncias: Dependency Injection e Unit of Work.
fabiosilvalima.net 8
Programao no Mundo Real
DESIGN PATTERNS vol.1
Repository
fabiosilvalima.net 9
Programao no Mundo Real
DESIGN PATTERNS vol.1
Repository
Onde uso?
No acesso a base de dados.
/*!
* No necessariamente REPOSITRIO resume-se
* apenas em banco de dados. Poderia ser um
* web service, um arquivo XML ou outra
* base de dados
*/
Aplicabilidade: 5
Nvel de dificuldade na implementao: 3
Refactor ps implementao: 1
Referncias: Dependency Injection e Unit of Work.
fabiosilvalima.net 10
Programao no Mundo Real
DESIGN PATTERNS vol.1
Cenrio comum
fabiosilvalima.net 11
Programao no Mundo Real
DESIGN PATTERNS vol.1
ProductController
IProductRepository
MongoDbProductRepository DapperSqlProductRepository
MongoDB SQL
- MongoDbProductRepository
- DapperSqlProductRepository
fabiosilvalima.net 12
Programao no Mundo Real
DESIGN PATTERNS vol.1
IProductRepository.cs
public interface IProductRepository
{
void InsertProduct(Product product);
}
/*!
* As INTERFACES devem ser definidas da forma mais
* especfica possvel. Se perceber que h uma
* interface com muitos mtodos, tente quebrar em
* mais de uma interface.
*/
fabiosilvalima.net 13
Programao no Mundo Real
DESIGN PATTERNS vol.1
DapperSqlProductRepository.cs
public class DapperSqlProductRepository :
SqlRepository, IProductRepository
{
public DapperSqlProductRepository()
{
Database.Execute(command, product);
}
}
fabiosilvalima.net 14
Programao no Mundo Real
DESIGN PATTERNS vol.1
ProductController
IProductRepository
ADOSqlProductRepository
SQL
fabiosilvalima.net 15
Programao no Mundo Real
DESIGN PATTERNS vol.1
fabiosilvalima.net 16
Programao no Mundo Real
DESIGN PATTERNS vol.1
RepositoryController.cs
public RepositoryController(IProductRepository
repository)
{
_repository = repository;
}
return View();
}
fabiosilvalima.net 17
Programao no Mundo Real
DESIGN PATTERNS vol.1
Resumo
fabiosilvalima.net 18
Programao no Mundo Real
DESIGN PATTERNS vol.1
Outros eBooks
- SOLID
- DRY
- Builder
- Visitor
- Bridge
- Iterator
- State
- Template Method
- MVVM
- MVC
- Command
- Interpreter
- Mediator
- Observer
- Memento
fabiosilvalima.net 19
Programao no Mundo Real
DESIGN PATTERNS vol.1
Agradecimentos
Muito obrigado :)
Reviso:
Apoio:
- Luciano Damiani
- Marco Aurlio Damiani
- Broker Consultoria e Solues de TI
Por fim,
fabiosilvalima.net 20
Programao no Mundo Real
DESIGN PATTERNS vol.1
No est gostando?
fabiosilvalima.net 21
Programao no Mundo Real
DESIGN PATTERNS vol.1
* FIM *
* OBRIGADO *
fabiosilvalima.net 22