.NET - Padrão de Projeto Builder
Neste artigo vamos apresentar os conceitos sobre o padrão Builder e um exemplo de implementação usando a sintaxe Fluente. |
O Padrão de projeto Builder é definido como um padrão de criação dentre os 23 padrões elencados pela Gang of Four (GOF).
O padrão
Builder cria um objeto complexo usando uma abordagem passo a passo. A interface
do Builder define as etapas para construir o objeto final. Esse construtor é
independente do processo de criação de objetos. Uma classe que é conhecida como
Director, controla o processo de criação de
objetos.
Assim, o padrão Builder descreve uma maneira de separar um objeto de sua
construção. O mesmo método de construção pode criar uma representação diferente
do objeto.
Dessa forma ele separa a construção de um objeto complexo de sua representação para que o mesmo processo de construção possa criar diferentes representações. Resumindo:
Abaixo temos o diagrama de classe UML para a implementação deste padrão :
As classes, interfaces e objetos no diagrama de classes UML acima são os seguintes:
A seguir temos um exemplo de implementação usando a sintaxe Fluente.
Criando o projeto Console
Vamos criar um vou criar um projeto Console usando o template Console App(.NET Framework) usando o VS 2017 Community com o nome CShp_Builder;
Criando um projeto do tipo Console no VS 2017 Community vamos definir as classes : Email e EmailBuilder
O código da classe Email:
public class Email
{
public string To { get; set; }
public string From { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
}
|
O código da classe EmailBuilder:
public class EmailBuilder { private readonly Email _email; public EmailBuilder() { _email = new Email(); } public EmailBuilder Body(string content) { _email.Body = content; return this; } public EmailBuilder From(string address)
{
_email.From = address;
return this;
}
public Email Build()
{
return _email;
}
public EmailBuilder Subject(string title)
{
_email.Subject = title;
return this;
}
public EmailBuilder To(string address)
{
_email.To = address;
return this;
}
}
|
No código do método Main:
using static System.Console;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Padrão Adapter - Fluent Interface");
var emailBuilder = new EmailBuilder();
var email = emailBuilder.To("macoratti@yahoo.com")
.From("teste@email.com")
.Subject("Assunto do Email")
.Body("Teste de envio de email")
.Build();
WriteLine($"{email.From} \n {email.To} \n {email.Subject} \n {email.Body} "); ReadLine(); } } |
Abaixo temos o resultado obtido:
Pegue o código do projeto aqui : CShp_Builder.zip
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
Padrões de Projeto - Macoratti.net
NET - Usando padrões de projeto e princípios OOP na ... - Macoratti.net
NET - O padrão de projeto Decorator - Macoratti.net
NET - Você já esta usando Padrões de Projeto (mesmo ... - Macoratti.net