Design Paterns: The Tetris of the Computer World

03 Dec 2025

Design Paterns: The Tetris of the Computer World

If Software Development was Tetris, then Design Patterns are the blocks. At least, that's how I like to think of them. They're nifty litte tools we cann use to get a job done. We use them as construction blocks to build our program or application (or solution if you're daring). Much like the blocks in Tetris, Design Patterns are incomplete on their own and require further work to bring out their true potential. When reviewing or drafting a design for a solution, we may come accross "T Block" shaped holes. This would be an indication to use a "T Block" to plug the hole. Let's say I want to create a front end to a database where users can add items and entries to the various tables. This would look like a very "Factory" shaped hole. Of course, like Tetris, there could be many Design Patterns to fit the bill. However, each and every Design Pattern has its own banes and boons. Yes, you could plug a vertical hole with an "L Block", but that would block the column and make further developments impossible. Similarly, one could use "Observer" to send news letters to subscribers, but good luck getting that to work reliably on multi-threaded computers. You don't have a semaphore! So naturally, this could go horribly wrong if you use the wrong Design Pattern for the job. To quote College Humor, "The playing field is random and jagged".

Now, in my latest project, my team and I made use of a "MVC" Design Pattern. We needed to make a front end to a database or rather, a "catalog" of item listings. This is a typical OOP problem where several objects would be created from a template class. We had several objects and pages that decides what view (page) is presented to the user based on user input, login credentials, search entries, etc. To be honest, I believe MVC is probably the most ubiquitous of the Design Patterns and represents the "T Block". It's the design pattern that most front end solutions require. After all, most websites have some sort of log in function now a days. Perhaps to my detriment. Good think I have a password manager.

</html>