Designing Patterns

01 May 2018

Design patterns, in my opinon, are designed to make your life and the lives of your teammates easier (yes, pun intended). What design patterns are is a general reusable solution/template. The main purpose of design patterns is to allow the development process to run smoothly. Typically, there are three main types of design patterns: creational, structural, and behavioral. Creational patters is focused on class instantiation and object creation. This process revolves around the what, who, when, and how of an object. Then there is structural pattern. This is about organizing different classes/objects to create a larger structure and provide new functionality. Essentially, this is a method to understand the relationships between different entities. Lastly, there is behavioral patter. This is about identifying common communication patterns across objects. This focuses on how objects communicate and interact with each other.

In my experience of working within a team, we use design patterns to ensure everyone is on the same page. We have a particular aesthetic we are working towards and since we are all working on separate components, design patterns allows our finished product to come together nicely without the hassle of making finishing touches due to things looking out of place. Throughout working on our project, some of the patterns that we have used personally are: prototype pattern (creational), composite pattern (structural), facade pattern, pipes and filters, and scheduled-task pattern (behavorial). We used many strucutral design patterns within our project. I find it interesting how design patterns, in our experience, was not something that was discussed beforehand but rather observed in hindsight.