D4vidOliveir4 Menu

Softwares e Fotografia

Partial class no C# e a coesão de classes

Uma partial class no C# consiste de uma classe dividida em dois ou mais arquivos. Isso existe para permitir que você separe partes de uma mesma classe, em arquivos separados, por qualquer motivo que você ache conveniente. O que não é possível com classes simples. E para fazer isso basta você criar uma classe usando "public partial class NomeDaClasseParcial(){}".

E agora vem a parte importante disso... Por mais que a classe esteja separada em vários pedaços ela ainda é UMA classe, sendo assim ela só pode ter uma responsabilidade. Se você esta pensando em criar partials pra separar uma classe que tem mais de uma responsabilidade você esta pensando da maneira errada. Se sua classe tem mais de uma responsabilidade você não deve criar uma partial, você deve separar essa responsabilidades em classes próprias. Dessa forma você garante a coesão do seu fonte e ganha vários benefícios de desempenho e manutenção de código. Classes mais claras, mais leves, reutilizáveis, de fácil leitura etc.

E é sempre importante lembrar que a partial foi criada para melhorar a organização do código. Depois que você compila os vários arquivos da partial vão virar um só, e se você criou uma partial pra separar uma classe com várias funções no final você vai acabar sempre "tendo que comprar um carro só pelas rodas" quando for usar essa classe. E tem outro ponto a partial foi feita pra organizar o código, imagina se você separa uma classe sem fazer nenhum planejamento... você vai acabar com vários arquivos que fazem referencias a coisas que estão em outros arquivos, que fazem referencia a outros arquivos, e outros arquivos e outros... isso vai virar um inferno pra dar manutenção.

Mas não vamos achar que partials nunca devem ser usadas, se você tem uma classe coesa e quer separar as funções das propriedades você pode usar uma partial (por mais que algumas pessoas achem isso uma má pratica), você também pode usar uma partial pra separar o que é interface de usuário do que é logica de negocio da sua classe mas acho que a função mais comum hoje em dia é pra estender classes de terceiros sem ter que alterar fontes que já existem ou foram gerados de maneira automática.

Dessa maneira acho que deu pra ficar claro o que é uma partial class e as formas de usar ela. Basta você sempre lembrar que por mais que esteja dividida ela ainda vai ser uma unica classe que sempre deve ter apenas uma função... E vamos ser sincero, usa o bom senso o negocio foi feito pra organizar o código não pra bagunçar ainda mais.

27/10/2022