Estou escrevendo um pequeno pacote MATLAB que resolverá certos problemas numéricos de classe. Existem 3 estágios do algoritmo e o usuário tem 5 opções para cada estágio. Eu implementei todo o problema usando funções e 3 casos de switch (um para cada estágio do algoritmo). Funciona bem, mas estou pensando em fazer mais coisas (mais de 5 opções e mais um estágio) e também criar uma porta Python (algumas pessoas estão interessadas).
Eu queria saber se devo converter para uma estrutura OOP (na qual não sou bom de todo) ou se devo manter a estrutura processual que tenho (na qual sou bom). No meu código processual, verifiquei que nenhuma função faz duas coisas e há uma sobreposição mínima (2 segmentos de código quase nunca fazem a mesma coisa).
Migre para SO se achar que é mais adequado no domínio deles.
Esta pergunta pode ser uma boa opção para o estouro de pilha. Eu acho que também é um bom ajuste aqui, porque é um problema comum na ciência da computação.
Em termos de composição de algoritmos, um bom exemplo de uma biblioteca que faz isso bem é o PETSc, se você pode ler o código C. O estilo de programação orientada a objetos pode ajudar no encapsulamento de dados, mas como um primeiro passo simples, você pode querer fazer de cada opção de estágio uma função com uma interface comum. Em seguida, para o seu algoritmo, passe uma função para cada estágio como entrada e faça com que o algoritmo principal chame a função para cada estágio.
fonte
1
+
1.plus(1)
plus(1,1)
1
plus
__plus__
__rplus__
Portanto, não sinta que precisa forçar o pino quadrado no orifício redondo, se o algoritmo tiver uma boa aparência de maneira processual simples, mantenha-o assim. Se precisar ser incluído em um sistema OO, você sempre pode colocar uma interface OO no seu código não OO. Os codificadores C ++ fazem isso todos os dias (e até são pagos por isso).
fonte