Fala ai Radizeiros e Radizeiras, tudo bem com vocês?

Mais um post de nossa série de ORM com arquitetura MVC.

Programar usando esses padrões podemos automatizar e reduzir muito nosso trabalho, dando maior tempo para pensar e realizar coisas que sempre quisemos, mas nunca tínhamos tempo, pois ao realizar uma manutenção, você gerava outros chamados.

Não deixe para depois e vem comigo para essa série, e hoje estarei mostrando como criar o controller principal para essa nossa aplicação de exemplo que estamos desenvolvendo.

Lembra que criamos duas interfaces, uma de controller e uma de entidades, em posts anteriores?

    iControllerEntidades = interface
         ['{46B426E1-EA18-4159-A043-8E45368A4FB3}']
         function Master : iModelDAO<TMASTER>;
         function Cliente : iModelDAO<TCLIENT>;
    end;
    
    iController = interface
        ['{66D7531B-1E38-4A82-97C4-B7E894508B43}']
        function Entidades : iControllerEntidades;
    end;

A nossa View, não vai acessar diretamente o controller de entidades, pois eu posso ter outras coisas nesse controller, então eu crio uma camada acima dela para que minha view possa acessar.

Através do iController a view acessa as entidades.

Agora criamos uma nova unit, e salvá-la como Blog.Controller.pas.

type
    TController = class(TInterfacedObject,iController)
        private
             FControllerEntidades : iControllerEntidades;
        public
             constructor Create;
             destructor Destroy; override;
             class function New : iController;
            function Entidades : iControllerEntidades;
    end;

implementation

{ TController }

constructor TController.Create;
begin
    FControllerEntidades := TControllerEntidades.New;
end;

destructor TController.Destroy;
begin
    inherited;
end;

function TController.Entidades: iControllerEntidades;
begin
    Result := FControllerEntidades;
end;

class function TController.New: iController;
begin
    Result := Self.Create;
end;

end.

Observe que criei uma variável para minha interface de controller de entidades, no create instanciamos esse nosso objeto, dando visibilidade a classe de controller de entidades, e simplesmente no método que chama a entidade eu retorno esse objeto criado.

Agora meu projeto está pronto, viu como ficou simples? Agora o mais divertido é na camada de visão, mas isso irei deixar para o próximo post…

Neste treinamento você vai aprender a aplicar técnicas que darão maior escalabilidade em seus softwares criando uma estrutura de forma prática e dinâmica, aplicando os padrões de boas práticas e clean code, além de compreender como aplicar os padrões de persistência de dados sem a necessidade de criar scripts de banco de dados.

CLIQUE AQUI E SAIBA MAIS SOBRE O TREINAMENTO COMO IMPLEMENTAR ORM EM ARQUITETURA MVC