Pattern

A pattern (design pattern) in software development, is a repetitive architectural solution to a common problem, which often arises within a design context.

Typically, a pattern is not a complete template that can be directly converted to code. Rather, it is just a fragment of the design, which  can be used as a sample for creating similar constructions on different program areas.

Object-oriented patterns show the relationships and interactions between classes or objects, without defining which end classes or application objects will be used.

"Low-level" patterns, which take into account the specifics of a particular programming language, are called idioms. These are good design solutions specific to a particular language or software platform, and therefore are not universal.

At the highest level, there are architectural patterns that cover the architecture of the entire software system.

Algorithms are also inherently computing templates, because they solve developmental problems.

Pros

In comparison with fully independent design, patterns have several advantages. The main benefit of using templates is to reduce development complexity by ready-made abstractions that solve a whole class of problems.

  • The pattern gives its name to the solution, which facilitates communication between developers, referring to known templates.Thus, at the expense of patterns details unification of decisions is made: modules, elements of the project, - the number of bugs decreases.
  • The use of patterns conceptually akin to the use of ready-made code libraries. Having found a successful solution, a correctly formulated design pattern can be reused over and over again.
  • A set of templates helps the developer to choose the most suitable design option.

Cons

Although a slight change in code under a well-known pattern can simplify the understanding of code, according to Steve McConnell two difficulties can be associated with the use of templates.

  • First, blindly following a selected pattern the global structure of the program can be bloated, exploiting unnecessary code repetitions and increasing the complication of the program.
  • Secondly, the developer may have a desire to implement some patterns without special reasons, instead of creating a new laconic solution.
Results for "DEV"
Logo Magora LTD
close
Get in touch
Logo Magora LTD
close
Thank you very much.

Your registration to the webinar on the 27th of September at 2 p.m. BST was successfuly completed.
We will send you a reminder on the day before the event.
Magora team
Registration for a webinar

"Let Smart Bots Speed up your Business"
Date: 27.09.2018 Time: 2 p.m. BST
Do you agree to the personal data processing?