| Changed line 7
from: |
| | Low coupling and high cohesion are central to any resilient software design. The object oriented paradigm introduces techniques that allow us to more effectively manage coupling and cohesion of system modules. Applying these techniques yields more extensible systems that are configurable at predefined variant points, resulting in system modules that are more extensible, maintainable, and reusable.
|
| to: | | | Low coupling and high cohesion are central to any resilient software design. The object oriented paradigm introduces logical design techniques, such as inheritance and polymorhpism, that allow us to more effectively manage coupling and cohesion of system classes. Applying these techniques yields more extensible systems that are configurable at predefined variant points, resulting in more extensible and reusable software. Many design patterns focus on helping create these flexible logical structures.
|
| Changed line 9
from: |
| | Experienced developers know that applying proven designs (aka. design patterns) encourages the design of software with a high degree of structural integrity. Using design patterns in software development, however, involves more than simply applying a pattern to a challenging design problem. How do we know what pattern might be most useful given our current context? Is there another pattern that might offer a more resilient design? These questions are not answered by understanding a multitude of design patterns, but instead by understanding how design patterns expose and apply the fundamental principles of object orientation. Through the exploration of these fundamental principles, we present a suite of heuristics that serve as the foundation of patterns, and allow us to realize the goals of object orientation.
|
| to: | | | But flexible designs exhibit characteristics beyond a resilient logical design. The deployable units, or physical entities, containing the logical class structures must also be designed with coupling and cohesion in mind. How a software application is built and deployed has a significant impact on the ability to maintain system modules, or components. Loosely coupled components can be deployed independently, with the positive side effect being easier use, and increased reuse, of system components. But well designed components also ease maintenance by allowing you to manage the ripple effect of change and the complexity of deploying individual components composing a large software system. Combining a robust physical design with a flexible and configurable logical design further increases the likelihood of reuse and maintainability due to the ease with which components can be independently deployed and configured based on desired usage.
|
| Changed line 11
from: |
| | At ExtensibleJava.com, we'll explore how to apply proven object oriented techniques to develop more extensible software. These techniques are applied using examples in Java. Throughout our explorations, we'll uncover a suite of powerful design heuristics captured by many of the most common and powerful design patterns. While many of our discussions focus on the 23 GOF design patterns, we do not limit ourselves to only these patterns. We also examine many architectural patterns found in the POSA1? work.
|
| to: | | | Unfortunately, constructing large software systems is not easy. Yet, experienced developers know that applying proven designs (aka. design patterns) encourages the design of software with higher degrees of integrity. Using design patterns in software development, however, involves more than simply applying a pattern to a challenging design problem. How do we know what pattern might be most useful given our current context? Is there another pattern that might offer a more resilient design? These questions are not answered by understanding a multitude of design patterns, but instead by understanding how design patterns expose and apply the fundamental principles of logical and physical design. Through the exploration of these fundamental principles, we present a suite of heuristics that serve as the foundation of patterns, and allow us to realize the goals of object orientation.
|
| Changed line 13
from: |
| | Enjoy the site.
|
| to: | | | At ExtensibleJava.com, we'll explore how to apply proven object oriented techniques to develop more extensible software. These techniques are applied using examples in Java. Throughout our explorations, we'll uncover a suite of powerful design heuristics captured by many of the most common and powerful patterns.
Enjoy the site, and please offer your feedback by contributing to the site (see below), or by e-mailing me (remove the _nospam).
|
|