Orientado a Processos x Orientado a Objetos

Para aprender programação, a habilidade básica é dominar a linguagem de programação, mas a essência da programação é a lógica, portanto, cultivar o pensamento de programação também é muito importante. Orientado a processo e orientado a objeto são duas idéias de programação importantes.A seguir, descrevemos as diferenças, vantagens e desvantagens dos dois.

1. Orientado para o processo

Orientado a processos é uma ideia de programação centrada em eventos. Ao programar, analise as etapas para resolver o problema e, em seguida, use funções para realizar essas etapas e, em seguida, chame as funções em ordem nas etapas específicas passo a passo.

Por exemplo, ao jogar gamão, a ideia do design orientado ao processo é primeiro analisar as etapas para resolver esse problema:

(1) Comece o jogo (2) Heizi vai primeiro (3) Faça o desenho (4) Determine se deve ganhar ou perder (5) É a vez de Bai (6) Faça o desenho (7) Determine se deve ganhar ou perder ( 8) Retorne ao passo (2) (9) Gere o resultado final.

Use as funções para implementar as etapas acima uma a uma e, em seguida, chame as funções acima por sua vez na função principal de jogar gamão (diferentes linguagens de programação têm diferentes métodos de chamada, o que escrevo aqui é chamada direta):

下五子棋{

开始游戏();

黑子先走();

绘制画面();

判断输赢();

轮到白子();

绘制画面();

判断输赢();

返回到 黑子先走();

输出最后结果;

}

Pode-se ver que a orientação ao processo sempre presta atenção em como julgar a vitória ou a derrota do jogo de xadrez passo a passo e realiza a execução sequencial de funções controlando o código.

2. Orientado a objetos

Na vida diária ou na programação, problemas simples podem ser resolvidos com o pensamento orientado ao processo, que é direto e eficaz, mas quando a escala do problema aumenta, o uso do pensamento orientado ao processo está longe de ser suficiente. Então, lentamente, surgiu a ideia de programação orientada a objetos. Existem muitas pessoas e coisas no mundo, cada uma das quais pode ser considerada um objeto, e cada objeto tem seus próprios atributos e comportamentos, e os objetos interagem uns com os outros por meio de métodos. A orientação a objetos é um tipo de ideia de programação centrada em "objetos". Ela decompõe o problema a ser resolvido em vários objetos. O objetivo de estabelecer um objeto não é concluir uma etapa, mas descrever um objeto em todo o processo de solução de problemas passos, propriedades e comportamento.

No exemplo de jogar gamão, se o método orientado a objetos for usado para resolvê-lo, primeiro divida todo o jogo de gamão em três objetos:

(1) Partidos preto e branco, o comportamento dos dois partidos é o mesmo.

(2) Sistema de tabuleiro de xadrez, responsável por desenhar a imagem

(3) O sistema de regras é responsável por julgar faltas, ganhar e perder, etc.

Em seguida, atribua algumas propriedades e comportamentos a cada objeto:

(4) O primeiro tipo de objeto (preto e branco) é responsável por aceitar a entrada do usuário e notificar o segundo tipo de objeto (sistema de tabuleiro de xadrez) sobre a alteração no layout das peças de xadrez. O sistema de tabuleiro de xadrez recebe a alteração das peças de xadrez e é responsável para exibir a mudança na tela. Ao mesmo tempo, o terceiro tipo de objeto (sistema de regras) é usado para julgar o jogo.

Pode-se ver que orientação a objetos é dividir o problema por função, não resolvê-lo por etapas. Por exemplo, o comportamento de desenhar uma imagem está espalhado em várias etapas no processo orientado ao processo e diferentes versões de desenho podem aparecer, portanto, várias simplificações devem ser feitas levando em consideração a situação real. No projeto orientado a objetos, o desenho só pode aparecer no objeto do sistema de tabuleiro de xadrez, garantindo assim a unidade do desenho.

3. Comparação de vantagens e desvantagens

orientado a processo

vantagem:

O processo torna a tarefa de programação clara, basicamente considera o método de implementação e o resultado final antes do desenvolvimento, as etapas específicas são claras e é conveniente para a análise do nó.

Alta eficiência, orientado ao processo, enfatizando a brevidade do código, bom em combinar estruturas de dados para desenvolver programas eficientes.

deficiência:

Requer pensamento aprofundado, consome energia, tem baixa reutilização de código, baixa escalabilidade e é relativamente difícil de manter posteriormente.

Orientado a Objeto

vantagem:

A estrutura é clara, o programa é modular e estruturado, o que está mais de acordo com o pensamento humano;

Fácil de expandir, alta taxa de reutilização de código, sistemas hereditários, sobrepostos e de baixo acoplamento podem ser projetados;

Fácil manutenção e baixo acoplamento do sistema ajudam a reduzir a carga de trabalho de manutenção posterior do programa.

deficiência:

O overhead é alto, ao modificar o interior do objeto, as propriedades do objeto não permitem acesso direto de fora, então é necessário adicionar muitos comportamentos que não têm outro significado e são responsáveis ​​apenas pela leitura ou escrita. Isso aumenta o fardo da programação, aumenta a sobrecarga do tempo de execução e faz com que os programas pareçam inchados.

Baixo desempenho Devido à camada de abstração lógica mais alta, quando a orientação a objetos é implementada, sacrifícios de desempenho devem ser feitos, e o tempo de cálculo e o tamanho do espaço de armazenamento são muito caros.

Dê exemplos para ilustrar as vantagens e desvantagens dos dois, como adicionar a função de lamentar o xadrez no jogo de gamão. No design orientado a processos, todas as etapas, desde a entrada até a exibição e o julgamento final, devem ser alteradas, e até mesmo a ordem das chamadas de função deve ser alterada. No design orientado a objetos, é necessário apenas adicionar uma função de retrocesso ao sistema de tabuleiro de xadrez Os atributos e comportamentos de preto e branco e o sistema de regras não precisam ser alterados. Este exemplo ilustra a baixa correlação entre os códigos na programação orientada a objetos (recurso de baixo acoplamento), o que torna o código fácil de ser reutilizado e expandido, e também ilustra a baixa reusabilidade e escalonabilidade do código orientado a processos.

O conteúdo acima é transferido da programação para jovens entusiastas de programação aprendendo e trocando jovens de programação comunitária

Acho que você gosta

Origin blog.csdn.net/weixin_39570751/article/details/131085577
Recomendado
Clasificación