Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Software design pattern
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== Patterns originated as an [[Pattern (architecture)|architectural concept]] by [[Christopher Alexander]] as early as 1977 in [[A Pattern Language]] (cf. his article, "The Pattern of Streets," JOURNAL OF THE AIP, September, 1966, Vol. 32, No. 5, pp. 273–278). In 1987, [[Kent Beck]] and [[Ward Cunningham]] began experimenting with the idea of applying patterns to programming – specifically [[pattern language]]s – and presented their results at the [[OOPSLA]] conference that year.<ref name = "Smith1987">{{cite conference | last = Smith | first = Reid | title = Panel on design methodology | conference = [[OOPSLA]] '87 Addendum to the Proceedings | doi = 10.1145/62138.62151 |date=October 1987 | quote=Ward cautioned against requiring too much programming at, what he termed, 'the high level of wizards.' He pointed out that a written 'pattern language' can significantly improve the selection and application of abstractions. He proposed a 'radical shift in the burden of design and implementation' basing the new methodology on an adaptation of Christopher Alexander's work in pattern languages and that programming-oriented pattern languages developed at [[Tektronix]] has significantly aided their software development efforts.}}</ref><ref name = "Beck1987">{{cite conference | last1 = Beck | first1 = Kent | author-link = Kent Beck | author-link2 = Ward Cunningham | first2 = Ward | last2 = Cunningham | title = Using Pattern Languages for Object-Oriented Program | conference = [[OOPSLA]] '87 workshop on ''Specification and Design for Object-Oriented Programming'' | url = http://c2.com/doc/oopsla87.html |date=September 1987 | access-date = 2006-05-26}}</ref> In the following years, Beck, Cunningham and others followed up on this work. Design patterns gained popularity in [[computer science]] after the book [[Design Patterns|''Design Patterns: Elements of Reusable Object-Oriented Software'']] was published in 1994 <!-- 1994, not 1995. See talk page. --> by the so-called "Gang of Four" (Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides), which is frequently abbreviated as "GoF". That same year, the first [[Pattern Languages of Programming]] Conference was held, and the following year the [[Portland Pattern Repository]] was set up for documentation of design patterns. The scope of the term remains a matter of dispute. Notable books in the design pattern genre include: * {{cite book | first1 = Erich | last1 = Gamma | author-link = Erich Gamma | author-link2 = Richard Helm | first2 = Richard | last2 = Helm | author-link3 = Ralph Johnson (computer scientist) | first3 = Ralph | last3 = Johnson | author-link4 = John Vlissides | first4 = John | last4 = Vlissides | year = 1994 | title = Design Patterns: Elements of Reusable Object-Oriented Software | publisher = [[Addison-Wesley]] | isbn = 978-0-201-63361-0 | title-link = Design Patterns (book) }} * {{cite book | first = Per | last = Brinch Hansen | author-link = Per Brinch Hansen | date = 1995 | title = Studies in Computational Science: Parallel Programming Paradigms | publisher = Prentice Hall | isbn = 978-0-13-439324-7 }} * {{cite book | first1 = Frank | last1 = Buschmann | author-link = Frank Buschmann | first2 = Regine | last2 = Meunier | first3 = Hans | last3 = Rohnert | first4 = Peter | last4 = Sommerlad | date = 1996 | title = Pattern-Oriented Software Architecture, Volume 1: A System of Patterns | publisher = John Wiley & Sons | isbn = 978-0-471-95869-7 }} * {{cite book | first = Kent | last = Beck | author-link = Kent Beck | year = 1997 | title = Smalltalk Best Practice Patterns | publisher = Prentice Hall | isbn = 978-0134769042 }} * {{cite book | first1 = Douglas C. | last1 = Schmidt | author-link = Douglas C. Schmidt | first2=Michael | last2 = Stal | first3 = Hans | last3 = Rohnert | first4 = Frank | last4 = Buschmann | date = 2000 | title = Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects | publisher = John Wiley & Sons | isbn = 978-0-471-60695-6 }} * {{cite book | title = Patterns of Enterprise Application Architecture | first = Martin | last = Fowler | author-link = Martin Fowler (software engineer) | year = 2002 | isbn = 978-0-321-12742-6 | publisher = [[Addison-Wesley]] }} * {{cite book | first1 = Gregor | last1 = Hohpe | first2 = Bobby | last2 = Woolf | date = 2003 | title = Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions | publisher = [[Addison-Wesley]] | isbn = 978-0-321-20068-6 | title-link = Enterprise Integration Patterns }} * {{cite book | first1 = Eric T. | last1 = Freeman | first2 = Elisabeth | last2 = Robson | first3 = Bert | last3 = Bates | first4 = Kathy | last4 = Sierra | author-link4 = Kathy Sierra | date = 2004 | title = Head First Design Patterns | publisher = [[O'Reilly Media]] | isbn = 978-0-596-00712-6 }} * {{cite book | first = Craig | last = Larman | author-link = Craig Larman | year = 2004 | title = Applying UML and Patterns (3rd Ed, 1st Ed 1995) | publisher = Pearson | isbn = 978-0131489066 }} Although design patterns have been applied practically for a long time, formalization of the concept of design patterns languished for several years.<ref name = "Baroni2003">{{cite report | s2cid = 624834 | citeseerx = 10.1.1.62.6466 | title = Design Patterns Formalization | first1 = Aline Lúcia | last1 = Baroni | first2 = Yann-Gaël | last2 = Guéhéneuc | first3 = Hervé | last3 = Albin-Amiot | date=June 2003 | publisher = École Nationale Supérieure des Techniques Industrielles et des Mines de Nantes | location = [[Nantes]] | series = EMN Technical Report |url=https://www.researchgate.net/publication/277282980 | via = ResearchGate }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)