" Examples of these concepts include flyweight objects and model-view-controller architectures, and applying them without understanding them  is  sometimes  known  as  "cargo  cult  programming."  
One of these concepts introduced by Trygve Reenskaug in the Smalltalk language gained popularity with Apple's WebObjects and is near-universal along with its MVVM variant for iOS applications. Another one of these concepts involves the use of double dispatch to traverse a structure made of polymorphic elements using an object known as a visitor. The web's first wiki accompanied a collection of documentation on these concepts known as the (*) "Portland repository" of them. This term was introduced in 1995 by Gamma et al.'s "gang of four," while Martin Fowler wrote the 2002 standard text on these concepts in "enterprise application architecture." Examples of these concepts include flyweight objects and model-view-controller architectures, and applying them without understanding them  is  sometimes  known  as  "cargo  cult  programming."  For  10  points,  name  these  reusable architectures for common problems encountered in software engineering.
One of these concepts introduced by Trygve Reenskaug in the Smalltalk language gained popularity with Apple's WebObjects and is near-universal along with its MVVM variant for iOS applications.
software design  patterns