Design patterns in the context software engineering are the solutions to problems that many software developers will face during software development. As a software developer, you will encounter issues and problems during the process of software development. Design patterns are pretty much the general solutions that can be used repeatedly to an occurring problem. By specifying what design patterns means, notice that it isn’t the exact code of the solution or at least a complete design that can be transformed into code. Like a pattern, it is the template or description of what can be done towards solving the problem. When I think of design patterns, I see a layout/plan which can become a potential solution; We are able to design a pattern. It’s not required to always have design patterns in every project, but is helpful to have for problem-solving.
There are benefits of using design patterns. Design patterns promotes reusability that helps maintain code. They are defined in a way that it makes our code easy to understand and allows the ability to debug. It can then lead to faster software development and making the code suitable for other problems.
Throughout my computer science career, I haven’t really acknowledged that I have been utilizing design patterns. I don’t have much experience in coding until I started the computer science program here at UH. I’m still fairly new to all of the concepts that is applicable in the world of software engineering. After learning what design patterns are, I have become aware that I have been using them. One design pattern is the factory design pattern. I was able to return objects in different classes, and creating dependent objects. Then, I’ve also noticed that I have used the singleton design pattern. I remember in one of my intro to computer science courses, we had to implement an instance in a class, which allowed global access to that instance.
It’s not required to have design patterns in every project, but is helpful to have for problem-solving. A lot of problems in my software developments will exist in my career. By implementing a design pattern, it can help avoid other problems in other software developments I’ll have in the future. At first, it seemed intimidating on what can be done in a software environment since there’s so much to do. There are many concepts that can be utilized, especially for problem-solving. After learning what design patterns are in the context of software engineering, I understand that it allows myself as developer to use design patterns to make my code flexible, reusable, and maintainable.