Blog / Design Patterns
Gamma Categorization in Design Pattern
  • Dec 07, 2020
  • 51
  • 77

Before we get started to the design patterns themselves, we need to have a general overview of the whole picture by looking at the so-called Gamma Categorization. So, what is that Gamma Categorization which is mentioned right now? Let's dive in!


1. What is Gamma Categorization?

Typically, the design patterns are split into three categories by Erich Gamma, one of GoF authors. The Gamma Categorization is named after him in his book: Design Patterns: Elements of Reusable Object-Oriented Software (1994).

The three categories are:

  • Creational Patterns
  • Structural Patterns
  • Behavioral Patterns

2. Creational Patterns

In software engineering, the design patterns which deal with creating objects are in the Creational Design Patterns category. In a real project, the design problems or complexities in later phases of a program may be caused by the basic form of object creation. With a solid design involving Creational Design Patterns, the mentioned problems or complexities can be resolved.

The Creational Patterns:

  • Deal with the creation (construction) of objects
  • Explicit (constructor) vs. implicit (Dependency Injection, Reflection, etc.)
  • Wholesale (single statement) vs. piecewise (step by step)

The Creational Design Patterns include:

3. Structural Patterns

As the name suggests, this category mainly concerns with the structure of the classes and relationships between entities. The structural design patterns simplifies the structure by identifying the relationships. These patterns focus on, how the classes inherit from each other and how they are composed from other classes.

The Structural Patterns:

  • Concern with the structure (e.g., members of a class)
  • Mimic the underlying class' interface
  • Stress the importance of good API design

The Structural Design Patterns include:

4. Behavioral Pattern

When talking about Behavioral Pattern, it identifies the common communication patterns between objects and memorize them. By focusing on Behavioral Pattern, the communication patterns can be done more flexible between objects in the program.

The Behavioral Patterns:

  • Concern with the assignment of responsibilities between objects, or, encapsulating behavior in an object and delegating requests to it
  • Concentrate on the way objects are interconnected

The Behavioral Design Patterns include:

To sum up, if Creational is about instantiation, and Structural is the blueprint, then Behavioral is the pattern of the relationship among objects.

If you have a Website or a Web API developed by using .Net Core and looking for a way to publish your applications, this post will explain how to do it using GoDaddy Windows Hosting.Note: at this mome ...

Search text in Stored Procedure in SQL SELECT DISTINCT AS Object_Name, o.type_desc FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id = o ...

Using cherry-pick to select specific commits for your Pull Request.1. Create a new branch based on the target of the Pull Requestgit branch cherry-branch origin/master2. Switch to a new branchgit chec ...

After deployment Angular and API on IIS, it's working fine unless I refresh the page. Once refreshed, the web encountered 404 error. In this article, I will explain how to resolve this.Since Angular i ...

There are some benefits of keeping both UI and API parts in the same place for small projects. In this article, I will explain how I did to deploy Angular Web and ASP .Net Core API in the same folder ...

I got CORS error after publishing my API and Angular app to IIS even though CORS is enabled and the origins of the Angular app is added. Below is how I resolved this issue.Just simple, make sure you s ...

1. The Situation:Error Message: Pulse Secure Application failed to load Java. Please install correct JRE version.Description: This issue happens when I'm using a M1 Mac with a correct version of ...

Accelerated Mobile Pages (AMP) focuses on delivering static content from publishers as quickly as possible and possibly rewards early adopters with a boost in rank. Let's see how to implement it ...

Below is how to decrypt/convert a Hex string value into text using VB.Net:Decrypting Hex string value to string in VB.Net Function HexToString(ByVal hex As String) As String Dim text As New Sy ...