Published Sep 3, 2019

Episode 215: Gang of Four – 20 Years Later

Celebrate the 20th anniversary of the groundbreaking "Design Patterns" book with an insightful conversation featuring its authors, the Gang of Four, as they discuss its significant impact on software development, the evolution of design patterns, and their enduring relevance in modern programming.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Pattern Explanations

    The concept of design patterns has significantly shaped software engineering, offering a structured approach to solving recurring design problems. reflects on the evolution of these patterns, noting that they were initially a collective view of best practices at the time. However, as the industry evolved, so did the applicability and relevance of these patterns, requiring reevaluation to fit modern practices 1. adds that the open-source movement has furthered the need for clear explanations of software design, allowing for a broader understanding and application of these patterns 2.

    The industry evolved. So we've discussed people look, discover better ways or design or work out better ways to solve design problems and the languages evolve.

    ---

       

    Singleton Pattern

    The Singleton pattern, while widely recognized, has sparked debate regarding its application and effectiveness. explains that in Smalltalk, the Singleton pattern is used to manage unavoidable global state, but in C, it often becomes an excuse for maintaining global state unnecessarily 3. criticizes the pattern for being a design shortcut that contradicts the principles of object-oriented programming, suggesting it should be "voted off the island" 4.

    Singleton is often a design shortcut. You have a well-known place to get to another object rather than reaching to other objects to get to this space.

    ---

       

    Evolution of Patterns

    Design patterns have evolved alongside programming languages, adapting to new paradigms and technologies. notes that while early patterns like the Observer were initially rigid, languages like Java introduced more flexible mechanisms like listener interfaces, enhancing reusability 5. highlights the shift towards reactive programming, which simplifies the use of patterns by making events more integral to the design process 6.

    The observer started as a way to express dependencies among coarse-grained objects. Model view control is the most popular one.

    ---

Related Episodes