When we searched for design pattern articles, we found documentation
concerning "Gang of Four" patterns. They are very useful and contribute to a
well-designed application. But when I discovered GRASP principles , I advised
any one interested to improve his skills design to look at these principles.
It gives the fundamental rules of design. In this article we will discover
some GRASP principles used by Spring, and the advantages of using them.
Spring is one of the most popular application developement framework for
entreprise Java. The Spring Framework does not impose any specific
programming model, it has become popular in the Java community as an
alternative to, replacement for, or even addition to the Enterprise JavaBean
Spring makes things easy for software designers, it gives them a good basis
to have a well designed projects. but what about Spring... (more)
JRE 6 was released in 2006, five years after a major JRE version was
released. For the past few years Java was looking stagnant, and many Java
developers began to worry; this concern was amplified when Oracle purchased
We will try to discover if there's a big refactoring or maybe many features
were added that can explain the time span between these two releases. In this
first part we will focus on design and implementation changes, and the second
part will focus on added features and breaking changes.
With JavaDepend we can compare two versions and detect any modifications ... (more)
According to the MVC definition from wikipedia:
"Model View Controller (MVC) pattern creates applications that separate the
different aspects of the application (input logic, business logic, and UI
logic), while providing a loose coupling between these elements."
But if we search for MVC frameworks we found many variants: MVC1, MVC2, MVC3,
MVP, MVVM and PureMVC.
The question is which one is the best to use?
As with any debate like that, there's no unique solution as it depends on
many factors. In this article we try using JavaDepend to discover PureMVC
in-depth, and talk about th... (more)
Hibernate is an open source Java persistence framework project. Perform
powerful object relational mapping and query databases using HQL and SQL.
In general the widely used libraries are well designed and implemented, and
it's very interesting to learn from them some coding best practices. Let's
take a look inside the hibernate core library and discover some of its design
keys. In this post Hibernate Core is analyzed by JArchitect to go deep inside
its design and implementation.
Package by Feature
Package-by-feature uses packages to reflect the feature set. It places all
items re... (more)
Robert C.Martin wrote an interesting article about a set of metrics that can
be used to measure the quality of an object-oriented design in terms of the
interdependence between the subsystems of that design.
Here's from the article what he said about the interdependence between
What is it that makes a design rigid, fragile and difficult to reuse. It is
the interdependence of the subsystems within that design. A design is rigid
if it cannot be easily changed. Such rigidity is due to the fact that a
single change to heavily interdependent software begins a cascade of chang... (more)