Design patterns are typical solutions to common problems in software design. Each pattern is like blueprint that you can customize to solve a particular design problem. Some of the benefits using design patterns in software development are more efficient, reliable, and agile software.
Design patterns differ by their complexity, level of details and scale of applicability to the entire system being designed. All patterns can be categorized by their intent, or purpose, this practice will covers three main groups of patterns:
- Creational patterns provide object creation mechanisms that increase flexibility and reuse of existing code.
- Structural patterns explain how to assemble objects and classes into large structures, while keeping the structures flexible and efficient.
- Behavioral patterns take care of effective communication and the assignment of responsibilities between objects.
This repository contains docker-compose.yml file that provides virtual environment with 1.16 version of go language. For executing code you just need installed Docker on your local machine and run docker container.