Design Blueprint

25 Apr 2024

Built on the Shoulders of Design

Professor Johnson discussed the purpose of writing this essay in class and how companies would ask ICS students questions like “What is a design pattern?” or “What is your favorite design pattern?” These newly graduated students would be stumped and wouldn’t understand what the interviewer was asking. This made interviewers question the lack of knowledge received while attending UH Manoa. However, quite frankly, I didn’t know what design patterns were before writing this essay, which prompted me to research what design patterns are.

So, what is it?

Well, the textbook definition stated by SourceMaking.com is, “In software engineering, a design pattern is a general, repeatable solution to a commonly occurring problem in software design.” But a relatable example of this is through the many experience modules we have utilized—the Meteor React template as a base to build upon our web application, from Island Snow to Digits. We utilized a set template that has been tried and tested with design patterns, which allows the base of our programs to be built with ease and replication.

So that’s what it is!

After studying design patterns, I’ve realized how much we’ve started using them in our ICS 314 course and especially in our final project. We’ve implemented several patterns including Prototype, Observer, MVC, Front Controller, Singleton, and Factory. I particularly enjoyed learning about the Observer pattern, which uses a Publish/Subscribe method. This allows parts of a website to share data with other sections. For example, in our final project, we created a collection of clubs and wanted to display it on another page; we would then publish the collection when created and then subscribe the second page to this publication. Once I understood this, I realized what Professor Johnson meant by “We’ve been using design patterns this whole time.” This concept, which we hadn’t covered in previous ICS courses, shows how design patterns are not only widely applicable but also valuable for future projects.