Talk:Software design pattern/Archive 4
From Wikipedia, the free encyclopedia
| This is an archive of past discussions about Software design pattern. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
| Archive 1 | Archive 2 | Archive 3 | Archive 4 | Archive 5 |
Fundamental pattern category
I'm not sure about considering encapsulation, inheritance, and exceptions to be design patterns. Encapsulation and inheritance are general directions for structuring code more than they are patterns, re-usable elements of software. They are philosophies more than patterns or blueprints. Patterns (not limited to computer science) must be unanimously recognizable. For example, an architectural design's use of the golden ratio is non-disputable. I've never seen "fundamental patterns" used anywhere outside of that cited college lecture presentation and the book it cites, Barbara Liskov's "Program Development in Java". It strikes me that the author wished to coin a new term; perhaps someone who read it can provide another opinion. My [query] yielded few relevant results. Has the term 'fundamental pattern' gained community acceptance or popular usage? And if so, do—and why do—encapsulation and inheritance qualify? Any thoughts? Also, the page Fundamental pattern lists Proxy pattern, Facade pattern, and Composite pattern; all three of which are listed as structural patterns in this page; and it doesn't list inheritance or encapsulation. dmyersturnbull ⇒ talk 03:59, 4 June 2009 (UTC)
- If there are no objections, I'll place the neologism template:
- for the reason cited above. Also, if its contradiction to Fundamental pattern is not resolved, I think adding contradict-other is warranted:
- dmyersturnbull ⇒ talk 06:58, 10 July 2009 (UTC)
I would remove everything referring to "fundamental patterns". They simply don't belong. "Design Patterns" (ISBN-10: 0201633612) is 15 years old and surely one of the seminal works. It's still in print. It catalogs ~15 patterns from factory to vistor. That's what the term normally encompasses and what wikipedia should document.
How to distinguish between a pattern and something like inheritance? There's no direct support for a pattern in any language. That's *why* they're patterns: because many programmers, facing diverse problems in a variety of languages, hit upon similar ways -- patterns -- of addressing them.
I disagree with the other cautionary note, though, that suggests criticism should be integrated into the document. The "other school of thought" should have its own section to allow main section to make its case.
- jklowden ⇒ talk Tue Jul 14 21:36:24 EDT 2009 —Preceding undated comment added 01:37, 15 July 2009 (UTC).
- There are source defining similar concepts. See chapter 2.3.1 of Meta-Compilation for C++ which also provide further references. I believe dmyersturnbull has many excellent points worth pursuing. As more people study a concept deeper understanding is found. Just because an seminal work refers to something doesn't mean a field can not progress beyond it. Other wise the argument would be mute as we would all program in MIX. Bpringlemeir (talk) 01:41, 16 July 2010 (UTC)
- Err, I guess I don't agree with dmyersturnbull (and apparently I can not read). Anyways, the reference above is worth looking at if you are pursuing this. There is literature where people try to dissect the universal nature of a pattern. As with the multiple language example above, an excess of things named patterns can dilute as well. Bpringlemeir (talk) 01:48, 16 July 2010 (UTC)
- "Encapsulation and inheritance are general directions for structuring code..." In other words, patterns?! This looks like the very definition of a pattern! GeneCallahan (talk) — Preceding undated comment added 18:15, 23 December 2014 (UTC)
IVSR
In several design patterns the C# examples have been changed to include the text IVSR, e.g. Mediator pattern. What is IVSR? When searching online I don't get any useful results. Could it be that someone is trying to self promote? If so, it needs to be removed. Otherwise it might be useful to explain what IVSR is. — Preceding unsigned comment added by 46.44.173.1 (talk) 12:02, 24 February 2015 (UTC)
Definition
According to the definition given by the HillSide group, the definition given (at the top of the wiki page) of a design pattern is incorrect: http://hillside.net/patterns/50-patterns-library/patterns/222-design-pattern-definition
Note that the HillSide group stands as the governing body of patterns for the software world. Also note the Richard (Dick) Peter Gabriel (aka RPG) (director of the HillSide group, and also known for "worse is better") has analysed the work of Christopher Alexander (from whence patterns came) exhaustively, one example being RPG's book, "Patterns of Software": http://dreamsongs.com/Books.html
Shkaboinka (talk) 16:30, 9 March 2016 (UTC)
Additional external link
I have added an external link to GoF Design Patterns Open Online Learning (w3sdesign.com). Do you agree? Serv49 (talk) 18:21, 20 October 2016 (UTC)
FOG heavy
Patterns that imply mutable state may be unsuited for functional programming languages, some patterns can be rendered unnecessary in languages that have built-in support for solving the problem they are trying to solve, and object-oriented patterns are not necessarily suitable for non-object-oriented languages.
I find that, as a single sentence, a bit heavy for the lead. — MaxEnt 02:37, 4 November 2016 (UTC)
Why RAII included in Design Pattern?
After reading RAII, it doesn't look like an creational pattern. Can we remove/move it from creation pattern secion?
- I support the removal. RAII is more exactly programming idiom, not a design pattern.--Demonkoryu (talk) 09:53, 8 August 2011 (UTC)
- Support removal. An programming idiom is something less versatile than a software design pattern.--Sae1962 (talk) 08:58, 29 November 2016 (UTC)