Tuesday, April 16, 2024
   
Text Size
Login

Site Search

  • PLoP

    PLoP

    Pattern Languages of Programs, People, and Practices (PLoP®) is the premier conference for pattern authors and users to gather, discuss and learn more about patterns. To achieve this, the conference promotes the use of patterns and pattern languages, as well as the underlying theory of the nature of order. PLoP 2024 will be held October 13-16, 2024. Visit the PLoP Official Site,

  • 1

The Hillside Mission

The mission of the Hillside Group is to improve the quality of life and society as a whole. This includes architects, developers, managers, owners, workers, educators, students, and more. Understanding and helping the human element is critical for achieving success. The Hillside Group believes in making processes and design more humane by paying attention to real people and existing practices.

The Hillside Group promotes the use of patterns and pattern languages to record, analyze, and share knowledge to help achieve its mission. The Hillside Group sponsors a variety of activities to achieve this mission—organizing workshops, hosting PLoP (pattern) conferences, and producing publications for discussing, recording, and documenting successful practices.

The Hillside Group supports many different conferences such as: PLoP, EuroPLoP, AsianPLoP, VikingPLoP, SugarLoafPLoP, and ChiliPLoP. These conferences focus on writing groups to better improve patterns through group exposure. Each conference offers advanced topics for the more adept pattern writers. Participants have the opportunity to refine and extend their patterns with help from knowledgeable and sympathetic patterns enthusiasts.

Pattern Books

The Design Patterns Book Series showcases many patterns from PLoP conferences and leading experts in the patterns field.



See our Pattern Book Library filled with over 80 Pattern related books.

Patterns Resources

All the C++ source code for the patterns in the book is available in a zip archive.

Note, this code is stripped directly from the original text and although it all compiles, (well almost all). Our goal was to have syntactically correct code, but not complete or executable code. We have played some tricks with #ifdefs, and introduced some dummy functions, so as to compile the pattern. These do not appear in the book.

Comments to This email address is being protected from spambots. You need JavaScript enabled to view it..

Pattern Name:

Name of pattern goes here

Note: use italics for all references to pattern names per Meszaros' pattern writing patterns. Delete this paragraph from actual pattern.

Aliases: Aliases (or none)


Problem

Give a statement of the problem that this pattern resolves. The problem may be stated as a question.

Context

Describe the context of the problem.

Forces

Describe the forces influencing the problem and solution. This can be represented as a list for clarity.

  • Force one
  • Force two

Solution

Give a statement of the solution to the problem.

Resulting Context

Describe the context of the solution.

Rationale

Explain the rationale behind the solution.

Known Uses

List or describe places where the pattern is used.

Related Patterns

List or describe any related patterns.

Sketch

Describe the sketch, if needed.


Author(s): Author's name here or "as told to" for pattern mining

Date: Date string goes here, e.g., 3/1/96

This email address is being protected from spambots. You need JavaScript enabled to view it.

Pattern Source: Example: AG Communication Systems, Writers Workshop, etc.


References

Give a list of references cited in the pattern.


Keywords: Give a comma delimited string of terms used for searching.


Example

Give an example implementation of the pattern. This can be code, pseudo code, etc. This section is optional.

Why are we, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, called this? Who knows. Somehow the name just stuck. Hopefully like, the original Gang of Four, we have started a small cultural change with "Design Patterns..." And hopefully unlike the original Gang of Four we will not meet such an untimely end for our ("counter-revolutionary"?) ideas.


Erich Gamma is currently with a consulting group in Zurich whose name I (Ralph) can't recall. From 1993 to 1995, he was a software engineer at Taligent working on their object-oriented development environment. Erich was previously at UBILAB research laboratory of Union Bank of Switzerland. He was one of the architects of ET++, a portable C++ class library for developing interactive graphical applications. Erich has a Ph.D. in Computer Science from University of Zurich.

Richard Helm recently rejoined IBM to start the Australian branch of the Object Technology Practice. Prior to that, he was a technology consultant with DMR Group, an international information technology consulting firm. There he actively applied design patterns to the design of commercial systems. Prior to DMR, Richard was in the Software Technology department at IBM T.J. Watson Research Center investigating object-oriented design and reuse and visualization. Richard has numerous international publications, writes regularly in Dr. Dobb's Journal, and is a past OOPSLA program committee member. Richard has a Ph.D. in Computer Science from the University of Melbourne, Australia.

Ralph Johnson has been studying object-oriented technology and how it changes the way that software is developed for the past 10 years. He has been involved in the development of an object-oriented operating system (Choices), compiler (Typed Smalltalk), graphics editor framework (HotDraw), music synthesis system (Kyma), and is currently working on a framework for accounting. He is on the faculty of the Department of Computer Science at the University of Illinois and has helped organize several OOPSLA's, including OOPSLA'93 as program chair. He got his PhD from Cornell.

John Vlissides passed away November 24th, 2005. He was a researcher at the IBM T.J. Watson Research Center. His research interests included object-oriented design tools and techniques, application frameworks and builders, and program visualization. Before IBM, John was at the Computer Systems Laboratory at Stanford University. There he co-developed InterViews, a popular object-oriented system for developing graphical applications. John received his Ph.D. in electrical engineering from Stanford University.

This is the The Gang of Four's template. View and save this page's source from your web browser. It includes examples of useful HTML formatting commands.

Pattern Name (Scope, Purpose)

The pattern's name conveys the essence of the pattern succinctly. A good name is vital, because it will become part of your design vocabulary.

Intent

A short statement that answers the following questions: What does the design pattern do? What is its rationale and intent? What particular design issue or problem does it address?

Also Known As

Other well-known names for the pattern, if any.

Motivation

A scenario that illustrates a design problem and how the class and object structures in the pattern solve the problem. The scenario will help you understand the more abstract description of the pattern that follows.

Applicability

What are the situations in which the design pattern can be applied? What are examples of poor designs that the pattern can address? How can you recognize these situations?

  • An applicable situation

Structure

Participants

The classes and/or objects participating in the design pattern and their responsibilities.

Participant Name

  • Responsibility for what

Collaborations

How the participants collaborate to carry out their responsibilities.

  • [Collaboration]

Consequences

How does the pattern support its objectives? What are the trade-offs and results of using the pattern? What aspect of system structure does it let you vary independently?

     

  1. A consequence bullet. Description of consequence

Implementation

What pitfalls, hints, or techniques should you be aware of when implementing the pattern? Are there language-specific issues?

 

  1. An implementation Bullet. Description of Bullet

Sample Code and Usage

Code fragments that illustrate how you might implement the pattern in C++ or Smalltalk.

Program Listing

Known Uses

Examples of the pattern found in real systems. We include at least two examples from different domains.

Related Patterns

What design patterns are closely related to this one? What are the important differences? With which other patterns should this one be used?

  • Hillside Fellowship Award
  • PLoP Conference Proceedings
  • Patterns for API Design
  • Pattern Languages of Programing
  • Security Patterns in Practice

The Hillside Fellowship Award

The Hillside Fellowship Program was established in 2016 to recognize members of The Hillside Group who have made exceptional contributions to the Hillside community and to the Patterns community at large. The title of Hillside Fellow denotes an outstanding member who has consistently and  repeatedly:  

  • provided excellence in contributions to the patterns body of knowledge
  • advanced the arts,
Read More

PLoP Conference Proceedings

After the PLoP Workshops, writers are encouraged to modify their papers and submit a final version. The final versions are collected and submitted to the ACM Digital Library. The versions are also available from the conference website. 

Conference Proceedings (ACM Digital Library)

Some of the PLoP accepted papers have been published on the  ACM Digital Library . The program committee will

Read More

Patterns for API Design

 

" Patterns for API Design " by Olaf Zimmermann, Mirko Stocker, Daniel Lubke, Uwe Zdun, and Cesare Pautasso

API Design Patterns

This book is for any domain, technology, or platform

  • Identify and overcome API Challenges
  • Size your endpoint types and operations
  • Design request and response messages and their representations
  • Refine your message design for quality
  • Combine patterns to solve real-world problems and make
Read More

PLoP™ (Oct  13-16, 2024)

 
Check out the main PLoP Website for more information and details!!!

Read More

Security Patterns in Practice

Eduardo Fernandez's new book " Security Patterns in Practice: Designing Secure Architectures with Software Patterns " has been published.

SecurityPatternsInPractice

It is the result of 14 years of producing security patterns with students and colleagues. Almost all of these patterns went through PLoP, EuroPLoP, AsianPLoP, or SugarLoafPLoP. Many of you have participated as shepherds or workshop commentators, the book owes something to

Read More

TPLoP

Learn More about Patterns

Disclaimer

Important: PLoP® is a registered
    trademark of The Hillside Group.

© Copyright 1994 - 2024, All Rights Reserved

Login Form