When we talk about patterns, people usually associate them with shapes or in art. In the software engineering world, design patterns are a solution to the common problems people face in software development. Design patterns are like constructions, we use a certain foundation to support the house or building and people usually reuse some plans because that type of construction works everytime. When building a software, a task will be given and it is up to us to know what type of design pattern that will work on the project.
When thinking of design patterns, people usually figure out what design patterns to use by working on projects and assignments. One of the major design patterns used in software developments is the Singleton. Singleton was used a lot in my introductory classes for computer science, and a singleton limits the class that has a variable that can be only instanced once. This type of coding give programmers less time to implement and somewhat encourage lazy coding, but can be bad at the same time.
I don’t think I’ve ever use one of the design patterns in the software engineering world but one thing I would call a design pattern was in my class in ICS 212. Before getting on the actual coding, we have to create mockup structures by creating a pseudocode instead of coding as we go. We had to construct what we have to create first, and we were using linked lists, to create a database. Our class had assignments related to our database project, therefore, by the time we had to actually code the database, the students have an idea on how to code their project. Similar to creating a house, we create a blueprint and construct the house using those plans. We built our database by taking small steps instead of getting to the project and struggle throughout the creation of the database. We didn’t cheat our code but instead created an idea on the solution for our problem, which is by taking baby steps. Design patterns can be a way to cheat through coding or to implement that code to minimize the problem, however, knowing when to implements those types of coding on out problem is more important than implementing them because it makes coding easier.