Pergunta

Eu fui a um .NET usuário grupo reunião hoje à noite, e parte dele girava em torno do padrão Model-View-view modelo, e ele ficou me perguntando se isso qualificado como um padrão.
O problema que tenho é que M-V-VM é extremamente tecnologia específica. Se você não usar o WPF e seu mecanismo de ligação, não vejo como você poderia usar esse padrão.
Em contraste, a maioria dos padrões de "clássicos" são em grande parte da tecnologia agnóstico. A maior suposição que eles fazem é que a linguagem usada é orientada a objetos, e, normalmente, suporta herança. Além disso, padrões clássicos são principalmente sobre declarando um problema de design em geral, e propor uma abordagem para resolvê-lo -, mas várias implementações ou variações são possíveis
. A minha pergunta é, então, onde você desenhar a linha, entre o que é um padrão de design e o que é uma recomendação sobre como usar um quadro muito específico? Se você sabe como implementá-lo e que linguagem e tecnologia que você precisa para usar a fazê-lo, ainda é um padrão?

Foi útil?

Solução

Podem os conceitos subjacentes que são necessárias para a "abordagem" para o trabalho ser re-implantado em outra plataforma sem violar quaisquer patentes, propriedade intelectual, ou quantidades obscenas de trabalho? Se assim for, eu diria que nós definitivamente podemos ainda chamá-lo de um padrão de design no sentido de que você está recebendo na - apenas um novo que não é fácil de fazer amplamente ainda . (Embora abordagens mesmo específicos da plataforma ainda pode ser padrões de projeto para a comunidade menor, que pode usá-los).

Do também ter em mente que MVVM é apenas uma implementação específica do Padrão Apresentação Modelo apresentado por Martin Fowler , que é certamente 'clássico', como você diz, e independente de plataforma.

"Nada de novo sob o sol", como dizem, apenas diferentes arranjos das mesmas idéias. Princípios são refinados o tempo todo, raramente novas inventado.

Outras dicas

Patterns não são uma ilha em algum mar de outras coisas. A sua não é a preto e branco que algo é um padrão ou não; todos os padrões pode ser colocado para fora em uma escala e ser vários tons de cinza entre específica genérico e de domínio, entre processo e código e praticamente qualquer outros dois postes acontecer de você escolher.

Se a sua uma receita que vale a pena compartilhar ou reutilizar no mesmo ligeiramente diferentes circunstâncias, o seu padrão.

Sim, Design Patterns são muitas vezes dependente da linguagem de programação e tecnologia em uso: por exemplo, as PD lidar com o jogo propriedade recurso explícita mal com línguas coleta de lixo, um trabalho em torno das limitações de jogo de digitação em tempo de compilação mal com dinâmica línguas, e assim por diante -. isso é normal, perfeitamente bem, essencialmente inevitável

"A recomendação" difere de "um padrão de design" não pelo contexto tecnologia, mas por amplitude e especialmente profundidade: a adequada identifica DP dois ou mais independente usos desenvolvidos de abordagens semelhantes, se aprofunda para ver o que comuns "forças" que estavam lidando, e harpas a partir daí, em um belo mas peso-pesado meta-formato. Em contraste, um recommdendation é muito menos formal, profundo e largo!

DPs não são inventadas , eles são descobertos por pensando sobre código existente (dois ou ocorrências mais desenvolvidos de forma independente) que lidam com situações semelhantes, identificando os pontos comuns como "forças "dirigir as soluções, etc, etc. 'DP' é um termo catchy tão popular, que é usado FAR mais amplamente do que deveria ser -0- voltar às fontes e ler, ou reler, de Alexander Timeless Way of Building e suas outras obras, se você perdeu o seu caminho através do emaranhado de buzzwordhood do DP, eles vão ajudá-lo a encontrar a trilha novamente!

Se você não usar o WPF e sua ligação mecanismo, não vejo como você pode usar esse padrão.

Silverlight e Moonlight também suportam MVVM.

"Línguas são baseados fora paradigmas", cada paradigma tem diferentes maneiras de resolver um problema. padrões de projeto que ser soluções comuns, não importa se é linguagem específica ou não.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top