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