What Are Design Patterns To Me

27 Apr 2019

The Art of Design Patterns and its Benefits

When a problem, or multiple problems, occur in some software design, solutions are used to combat against these whenever they arise; of course the problem isn’t solved immediately all the time but these solutions will hopefully function in a way that will assist coders and software designers along the way. If these problems are reoccurring, specific solutions will be used for these situations; and if no solution is currently available there will be one eventually. These solutions in this situation are called design patterns. Just because they’re solutions doesn’t mean they will work all the time, in that case it isn’t exactly a completed design but can be altered and transformed into code; it’s specifically some form of description or template that can be used to solve problems in multiple different situations. From another point of view, these design patterns are ‘adaptive solutions’ that can change depending on the situation, when it comes to it.

There are three design pattern types, which includes: Creational, Structural, and Behavioral. Creational basically deal with ‘object creation’, which in this case it creates objects that are best used for the situation at hand. Structural design patterns organize different classes and objects to form larger structures with new functionalities. And Behavioral identifies common communication patterns between objects, thus realizing these patterns to use them in specific ways. Although this does seem new to me in terms of terminology and such since I’ve never really established a connection like this when it came to coding, I do in one way or another use design patterns in my own code; probably without realizing it was one specific design pattern or another. When it came to solving a problem in a code, I would do the usual thing I would always do which is to trace it back to its source based on the files listed in the errors; I would check which files were changed at what specific time in what specific way. I would also make a few small changes in some parts of the code to check what affects the other in an unusual way to be able to pinpoint an error found in that file.

Some methods can be weird but they can also be effective. From how I see it, I’ve used, to my surprise, all of these design patterns; although not to a large extent considering the amount of issues I have encountered thus far and how difficult of a problem those issues were. Design patterns can be used in different ways but they do have their uses for different situations; I have been provided different ways on how to do things when it comes to a situation that requires needed attention, as such I’ve attempted to adjust code to be able to handle such situations a few times in the past and now to be able to meet some expectation. In this case, basically hoping the code will work because I did ‘X’ or because I did ‘X’ amount of things some way that would assume it would work after a while.