Software design pattern: Difference between revisions

Content deleted Content added
I have restored the opening paragraph from the 24 December entry of this Wikipedia article. The previous editor had significantly changed the contents of the article, and cited sources e.g. Alexandrescu (2001) do not substantiate his edit.
Tags: Reverted references removed
Undid revision 1268991722 by 121.6.112.224 (talk) Contents without reliable citation, or not very accurate
Tags: Undo Mobile edit Mobile app edit Android app edit App undo
Line 1:
{{short description|Reusable solution to a commonly occurring software problem}}
 
In [[software engineering]], a '''softwareSoftware design pattern''' orrefers '''design pattern''' isto a generalreusable, [[reusability|reusable]]proven solution to a commonlyspecific, occurringrecurring problem intypically manyfocused contextson in [[softwarecomponent-level design]], though they can sometimes span multiple components. Design patterns address specific issues related to object creation, interaction, or behavior. <ref>{{cite book |last=Alexandrescu |first=Andrei |date= 2001 |title= Modern C++ Design: Generic Programming and Design Patterns Applied |publisher=Addison-Wesley |page=xviii |isbn=978-0-201-70431-0 }}</ref><ref Aname="O'Reilly designMedia">{{Cite patternbook is|title=Fundamentals notof aSoftware rigidArchitecture: structureAn thatEngineering canApproach be|publisher=O'Reilly transplantedMedia directly|year=2020 into|isbn=978-1492043454}}</ref><ref [[sourcename=":0">{{Cite code]].book Rather,|title=Design itPatterns: isElements aof descriptionReusable orObject-Oriented aSoftware template|isbn=978-0201633610}}</ref><ref forname=":1">{{Cite solvingbook a particular type|title=Patterns of problemEnterprise thatApplication can be deployed in many different situations. Design patternsArchitecture can be viewed as formalized [[best practice]]s that the programmer may use to solve common problems when designing a software application or system.|isbn=978-0321127426}}</ref>
 
[[Object-oriented]] design patterns typically show relationships and interactions between [[class (computer science)|class]]es or [[object (computer science)|object]]s, without specifying the final application classes or objects that are involved. 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.
 
Design patterns may be viewed as a structured approach to [[computer programming]] intermediate between the levels of a [[programming paradigm]] and a concrete [[algorithm]].
 
==History==