Este é um simples artigo, demonstrando que nem sempre a Orientação a Objetos é uma Vantagem, e a sua utilização deve ser pensada com cuidado, para não gerar perda de tempo, brechas de segurança e erros.
No tempo em que estudava em um curso técnico, costuma resolver um algoritmo em especifico que solicitava a conversão de uma temperatura dada em Fahrenheit para graus Celsius. Sendo assim, é este o exemplo que irei usar para demonstrar que em alguns casos é melhor manter as coisas simples.
O código usado, esta escrito em linguagem PHP.
Primeiro vamos usar a programação estruturada(se é que podemos chamar isso de estruturada) para alcançar o objetivo. Veja como o PHP nos permite resolver nosso problema, convertendo de forma muito simples uma temperatura dada Fahrenheit para Celsius com apenas 3 linhas de código.
E assim, você resolve o problema. E agora é um programador Feliz com tempo livre para estudar programação quântica.
Nota: A formula para se converter uma temperatura de Fahrenheit para Celsius pode ser tanto : C = ( F - 32 ) / 1.8
quanto : C = ( F - 32 ) * ( 5 / 9 )
as duas formulas retornam o mesmo resultado.
Agora, digamos que você deve encontrar a solução para o problema de conversão, utilizando Programação Orientada a Objetos. Certamente, seu primeiro passo será gerar um diagrama UML relacionando quais propriedades e métodos serão usados no algoritmo.
Após isso, descobri-se, alguns métodos comuns a todas as categorias de temperatura e também, uma propriedade comum. Logo, cria-se uma classe abstrata para servir de modelo para as demais classes criadas.
Após criar a classe abstrata, programamos as demais Classes que herdam a mesa. Tomando cuidado para não esquecer de implementar os métodos abstratos da classe Pai.
Uma vez que estamos, criando as classes separadas, podemos pensar já em implementar funções para conversão entre Celsius, Fahrenheit e Kelvin, que são as mais conhecidas.
Todas as classes classes que herdam temperatura, são muito parecidas, mudando apenas a formulá para conversão que é utilizada e a escala que é retornada. Sendo assim, seria possível criar uma classe "Conversor" para implementar apenas os métodos comuns a estas classes, evitando assim ter que duplicar seus códigos.
Lembrando ainda, que estas classes são muito simples, e não estão de pleno acordo com todas as regras de boa programação. O correto em cada classe, seria implementar um controle de erros, mas lembre-se que, a cada nova linha de código que escrevemos, aumenta-se as possibilidades de gerar bugs e abrir brechas de segurança.
Por fim, e com a classe concluída, pode-se instanciar os objetos,passando como parâmetro a temperatura com que se quer trabalhar, e convertendo-a para qualquer outra temperatura.
E assim, implementa-se uma complexa orientação a objetos em PHP, que como citado no inicio, deve-se pensar bem sobre a necessidade.
No tempo em que estudava em um curso técnico, costuma resolver um algoritmo em especifico que solicitava a conversão de uma temperatura dada em Fahrenheit para graus Celsius. Sendo assim, é este o exemplo que irei usar para demonstrar que em alguns casos é melhor manter as coisas simples.
O código usado, esta escrito em linguagem PHP.
Primeiro vamos usar a programação estruturada(se é que podemos chamar isso de estruturada) para alcançar o objetivo. Veja como o PHP nos permite resolver nosso problema, convertendo de forma muito simples uma temperatura dada Fahrenheit para Celsius com apenas 3 linhas de código.
E assim, você resolve o problema. E agora é um programador Feliz com tempo livre para estudar programação quântica.
Nota: A formula para se converter uma temperatura de Fahrenheit para Celsius pode ser tanto : C = ( F - 32 ) / 1.8
quanto : C = ( F - 32 ) * ( 5 / 9 )
as duas formulas retornam o mesmo resultado.
Agora, digamos que você deve encontrar a solução para o problema de conversão, utilizando Programação Orientada a Objetos. Certamente, seu primeiro passo será gerar um diagrama UML relacionando quais propriedades e métodos serão usados no algoritmo.
Após isso, descobri-se, alguns métodos comuns a todas as categorias de temperatura e também, uma propriedade comum. Logo, cria-se uma classe abstrata para servir de modelo para as demais classes criadas.
Após criar a classe abstrata, programamos as demais Classes que herdam a mesa. Tomando cuidado para não esquecer de implementar os métodos abstratos da classe Pai.
Uma vez que estamos, criando as classes separadas, podemos pensar já em implementar funções para conversão entre Celsius, Fahrenheit e Kelvin, que são as mais conhecidas.
Todas as classes classes que herdam temperatura, são muito parecidas, mudando apenas a formulá para conversão que é utilizada e a escala que é retornada. Sendo assim, seria possível criar uma classe "Conversor" para implementar apenas os métodos comuns a estas classes, evitando assim ter que duplicar seus códigos.
Lembrando ainda, que estas classes são muito simples, e não estão de pleno acordo com todas as regras de boa programação. O correto em cada classe, seria implementar um controle de erros, mas lembre-se que, a cada nova linha de código que escrevemos, aumenta-se as possibilidades de gerar bugs e abrir brechas de segurança.
Por fim, e com a classe concluída, pode-se instanciar os objetos,passando como parâmetro a temperatura com que se quer trabalhar, e convertendo-a para qualquer outra temperatura.
E assim, implementa-se uma complexa orientação a objetos em PHP, que como citado no inicio, deve-se pensar bem sobre a necessidade.
Comentários
Postar um comentário