Skip to content

Instantly share code, notes, and snippets.

View viniciussanchez's full-sized avatar
:octocat:
Share knowledge

Vinicius Sanchez viniciussanchez

:octocat:
Share knowledge
View GitHub Profile
@viniciussanchez
viniciussanchez / Solid.DIP.Refatoracao.pas
Created May 4, 2021 11:38
Refatoração do princípio DIP do SOLID
unit Solid.DIP.Refatoracao;
interface
type
TFirebirdConnection = class
public
procedure Connect;
end;
@viniciussanchez
viniciussanchez / Solid.DIP.Violacao.pas
Created May 4, 2021 11:36
Violação do princípio DIP do SOLID
unit Solid.DIP.Violacao;
interface
type
TFirebirdConnection = class
public
procedure Connect;
end;
@viniciussanchez
viniciussanchez / Solid.ISP.Correcao.pas
Created April 27, 2021 17:24
Correção do ISP (SOLID)
unit Solid.ISP.Correcao;
interface
type
IAves = interface
['{1F0490B4-0D6D-4BDE-A28A-8E1E2E717874}']
procedure BeberAgua;
procedure EmitirSom;
end;
@viniciussanchez
viniciussanchez / Solid.ISP.Violacao.pas
Created April 27, 2021 17:23
Violação do ISP (SOLID)
unit Solid.ISP.Violacao;
interface
type
IAves = interface
['{1F0490B4-0D6D-4BDE-A28A-8E1E2E717874}']
procedure BeberAgua;
procedure EmitirSom;
procedure Voar;
@viniciussanchez
viniciussanchez / Solid.LSP.pas
Created April 24, 2021 13:46
Exemplo 2 - SOLID LSP
// Função que espera um objeto do tipo TClassePai como parâmetro
function GetMensagemOk(const AObjeto: TClassePai): string;
begin
Result := 'Ok';
end;
var
LClassePai: TClassePai;
LClasseDerivada: TCLasseDerivada;
begin
@viniciussanchez
viniciussanchez / Solid.LSP.pas
Last active April 23, 2021 19:12
Implementação do LSP
unit Solid.LSP;
interface
type
TClassePai = class
public
function GetNome: string;
end;
@viniciussanchez
viniciussanchez / Solid.OCP.Boleto.pas
Created April 15, 2021 11:20
Padrão Open-Closed Principle (SOLID)
unit Solid.OCP.Boleto;
interface
type
IBanco = interface
['{71EB60CC-91C0-40E3-9D58-9F2CC46E84A9}']
procedure GerarBoleto;
end;
@viniciussanchez
viniciussanchez / Solid.OCP.Violacao.pas
Created April 15, 2021 11:15
Violação do OCP (SOLD)
unit Solid.OCP.Violacao;
interface
type
TBancoItau = class
public
procedure GerarBoleto;
end;
@viniciussanchez
viniciussanchez / Solid.SRP.Logger.pas
Last active April 9, 2021 03:05
Refatoração do SRP (SOLID)
unit Solid.SRP.Logger;
interface
type
TLogger = class
public
procedure Log;
end;
@viniciussanchez
viniciussanchez / Solid.SRP.MailService.pas
Last active April 9, 2021 03:05
Refatoração do SRP (SOLID)
unit Solid.SRP.MailService;
interface
type
TMailService = class
public
procedure SendMail;
end;