articles

Home / DeveloperSection / Articles / Introduction to Design Patterns in Software Development

Introduction to Design Patterns in Software Development

marcel ethan1488 26-Apr-2016

If you’re just starting to develop an enterprise level web application, you’re lucky. We get to exploit the collective wisdom of the tens of thousands of developers who’ve been down that road and already accomplished the task for us. Using popular design patterns, we can simplify our code and our life.  


Software Experts found reoccurring themes in the nature of the problems they were dealing with, and they came up with reusable solutions to these problems. These design patterns have been used, tested, and refined by other developers, so we don’t have to reinvent the wheel. Thus, in simple terms we can say that: A software design pattern is “a repeatable solution for a commonly-occurring software problem. 


Software design patterns use one or more objects together to solve a common use case. These use cases often focus on code reuse, extensibility, or generally providing a solid foundation for future software development. Hundreds, if not thousands, of software design patterns exist, and we may create some new ones that work for us in our everyday job. Popular programming languages like Java makes use of many design patterns throughout the standard library API’s and it is quite simple to create our own implementation of some common design patterns. 


Design Patterns give us a shared vocabulary with other developers. Once we have got the vocabulary we can more easily communicate with other developers and inspire those who don't know patterns to start learning them. It also elevates our thinking about architecture by letting us think at the pattern level, not the nitty gritty object level. 


We all used off-the-shelf libraries and frameworks. We take them, write some code against their API’s compiles them into our programs, and benefit from a lot of code someone else has written. For instance, think about the Java APIs and functionality they give us: Network, IO, Swings etc. But they don’t help us structure own application in ways that are easier to understand, more maintainable and flexible.  


That where Design Patterns comes in. If a software development team have good working knowledge of patterns, then they can then start to apply them to their new designs, and rework their old code when they find it’s degrading into an inflexible mess of awfully maintainable code i.e. by knowing patterns, “we can skip the hard work and jump straight to design that always work”.



Leave Comment

Comments

Liked By