If it's technology, is it still a design pattern?

I went to a .NET user group meeting today, and part of it revolved around the view model model, and I was wondering if that qualifies as a template.
The problem is that MV-VM is extremely technology specific. Unless you are using WPF and the binding engine, I cannot see how you can use this pattern.
On the contrary, most of the "classic" models are largely technological. The biggest assumption they make is that the language they use is object-oriented and usually supports inheritance. In addition, the classic patterns mostly deal with a general design problem and offer an approach to solving it, but several implementations or variations are possible. My question is where are you drawing the line between what is the design pattern and what is the recommendation on how to use a very specific framework? If you know how to implement it and what language and technologies you need to use, is this still a pattern?

+2


source to share


5 answers


Could the basic concepts that are needed to "approach" work be reimplemented on another platform without infringing on any patents, intellectual property, or obscene amount of work? If so, I would say that we can definitely call it a design pattern in the way you get it - just a new one that isn't easy to do widely. (Although even platform-centric approaches can still be design patterns for a smaller community that can use them).

Also keep in mind that MVVM is just a concrete implementation of the Presentation Model pattern presented by Martin Fowler , which is certainly "classic" as you say and platform agnostic.



"Nothing new under the sun", as they say, just different arrangements of the same ideas. The principles are constantly being improved, new ones rarely appear.

+5


source


Patterns are not an island in some sea of โ€‹โ€‹other things. Its not black and white, that something is a pattern or not; all templates can be laid out on a scale and be different shades of gray between the general and the specific domain, between the process and the code, and pretty much any two other target stakes you choose.



If it's a recipe worth sharing or reusing in slightly different circumstances, it's a template.

+4


source


Yes, design patterns often depend on the programming language and technology used: for example, DPs dealing with explicit ownership of resources play poorly with garbage collected languages, with one dealing with compile-time constraints playing poorly with dynamic languages, etc. ... - which is normal, perfectly beautiful, essentially inevitable.

A "recommendation" differs from a "design pattern" not in its technological context, but in breadth and especially depth: a proper DP identifies two or more independently developed uses of similar approaches, goes deeper to see what common "forces" they dealt with and build on from there into beautiful but heavy meta format. On the contrary, the recommendation is much less formal, deep and broad!

DPs are never invented , they are discovered by reflecting on existing code (two or more independently developed occurrences) that deal with similar situations, identifying commonalities as "forces", driving decisions, etc. "etc." DP "is such a popular, memorable term that he used FAR more extensively than it should be -0- go back to the sources and read or re-read Alexander The Endless Construction Path and his other works, if you fell through the thicket of DP buzz they will help find the path again!

+1


source


If you are not using WPF and its binding mechanism, I donโ€™t understand how you could use this pattern.

Silverlight and Moonlight also support MVVM.

0


source


"Languages โ€‹โ€‹are paradigm-based", each paradigm has different ways of solving the problem. Design patterns are usually generic decisions, it doesn't matter if it's language specific or not.

0


source







All Articles