Padrões de design não OOP? [fechadas]

68

Eu só ouvi o termo "padrão de design" sendo usado para código orientado a objetos, e os padrões GoF incluem apenas padrões de projeto OOP, mas padrões de design são soluções elegantes para problemas de programação comuns, certo? Não há nada lá dizendo que eles devem ser limitados a OOP, existe?

Eu gostaria de ver alguns exemplos de padrões de design fora do domínio da programação orientada a objetos. Voc ~ e tem algum? Existem tais coisas (nenhum livro, como o livro do GoF, deve necessariamente ter sido escrito, eles devem ser usados apenas; isso é suficiente)?

Eles podem ser específicos para algumas linguagens de programação, mas padrões gerais (nível de paradigma) são preferidos, de outros paradigmas que não o orientado a objetos.

    
por Anto 12.04.2011 / 22:24
fonte

10 respostas

10

Na verdade, é um paradoxo - um dos padrões não-OO mais populares é ... "Classe".

Como o OO foi inventado em linguagens que não são OO, os desenvolvedores tiveram que simulá-lo (e estão fazendo isso mesmo agora) - então o padrão nasceu. LISP e C são exemplos disso.

Mas siga o meu conselho: Não cometa erros comuns - não use padrões apenas porque é legal , você precisa de razões sérias para justificar o uso de padrões (pelo menos os OO). / p>

Tome padrão de comando, por exemplo - embora seja bom & separa o chamador do receptor, não deve ser usado a menos que você realmente precise disso - porque as operações devem ser expressas usando verbos - o que significa métodos. E usando comandos todo o lugar que você acabaria com um monte de OO-lambdas completamente descentralizadas - > o mesmo seria verdade para muitas estratégias.

    
por 15.04.2011 / 07:21
fonte
10

"Padrão de design" é na verdade um eufemismo para "solução alternativa". Os padrões de design foram inventados para contornar defeitos e falhas nos idiomas OO . Por exemplo, pegue o padrão do iterador que eventualmente levou à introdução das coleções em Java. O Groovy livrou-se de muitos outros padrões convertendo-os em recursos de linguagem: Você não precisa mais do padrão de decorador porque pode incluir métodos em classes existentes no Groovy.

Isso significa que você pode encontrar padrões de design em todos os lugares. Na verdade, qualquer "melhor prática" pode ser considerada uma forma simples de um padrão de design.

    
por 09.11.2011 / 09:15
fonte
9

O LtU menciona que Jeremy Gibbons está escrevendo um livro sobre padrões em programação funcional. Confira o blog do Patterns in Functional Programming do Sr. Gibbon para alguns teasers. Note que ele recomenda ler suas postagens da mais antiga para a mais nova.

Seu trabalho Padrões de design como programas genéricos de tipo hierárquico de ordem superior (pdf) funcionalmente modela os padrões da Gang of Four: Composite, Iterator, Visitor e Builder. Ele descreve os padrões de programação com equações recursivas em Programação de Origami (dobra e desdobra).

    
por 14.04.2011 / 16:47
fonte
8

Existem padrões de design do SQL .

E também existem alguns padrões de design funcional - veja aqui para scala.

    
por 12.04.2011 / 22:36
fonte
6

Em vez de nomear padrões de design não-oo, gostaria de dar alguns exemplos de livros que possuem muitos padrões de design (neles, alguns padrões ainda serão específicos de OO):

Espero que isso ajude

    
por 12.04.2011 / 22:51
fonte
2

Na programação funcional (especialmente Haskell), existem muitos padrões e expressões idiomáticas que não mapeiam muito bem a OOP. Os tipos fantasmas são um exemplo bem conhecido, e você pode encontrar muito mais sobre o haskell página wiki em idiomas .

    
por 13.04.2011 / 12:29
fonte
1

A programação modular é bastante popular para bibliotecas numéricas e aplicações pesadas de matemática (o software numérico é notoriamente difícil de modelar usando o Padrões Orientados a Objetos, principalmente porque há muito pouco que você pode encapsular).

    
por 15.04.2011 / 07:59
fonte
1

Um bom exemplo de padrões não-OOP é o meu catálogo de padrões absoluto favorito: Padrões Organizacionais do Desenvolvimento Ágil de Software, por James O. Coplien . Este livro não é sobre padrões de software, é sobre pessoas, um catálogo para criar equipes de sucesso. Todo gerente deve ler este livro!

    
por 02.03.2012 / 15:11
fonte
0

Eu gosto de pensar em estruturas de dados como filas, listas vinculadas, árvores, gráficos, etc. como padrões. Eles definem certos padrões para armazenar dados e processá-los. Eles podem parecer primitivos em comparação com padrões mais altos de Gang of Four, mas eles são padrões, no entanto. Quero dizer, o que aconteceria se alguém implementasse uma pilha como FIFO em vez de LIFO e vice-versa para uma fila e desse o nome de outra forma?

    
por 13.04.2011 / 10:42
fonte