Software design pattern: Difference between revisions

Content deleted Content added
mNo edit summary
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
Line 1:
{{short description|Reusable solution to a commonly occurring software problem}}
 
In [[software engineering]], a '''Softwaresoftware design pattern''' refersor to'''design pattern''' is a reusablegeneral, proven[[reusability|reusable]] solution to a specific,commonly recurringoccurring problem typicallyin focusedmany oncontexts component-levelin [[software 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 name="O'ReillyA Media">{{Citedesign bookpattern |title=Fundamentalsis ofnot Softwarea Architecture:rigid Anstructure Engineeringthat Approachcan |publisher=O'Reillybe Mediatransplanted |year=2020directly |isbn=978-1492043454}}</ref><refinto name=":0">{{Cite[[source bookcode]]. |title=DesignRather, Patterns:it Elementsis ofa Reusabledescription Object-Orientedor Softwarea |isbn=978-0201633610}}</ref><reftemplate name=":1">{{Citefor booksolving |title=Patternsa particular type of Enterpriseproblem Applicationthat Architecturecan be deployed in many different situations. Design patterns |isbn=978-0321127426}}</ref>can be viewed as formalized [[best practice]]s that the programmer may use to solve common problems when designing a software application or system.
 
[[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==