From: v4vijayakumar on
Can all design issues boil down to these 23 (GoF) design pattern
solutions?

(Even some of these design pattern looks same. For example,

1. "Factory method" differs object creation to subclasses; "Template
method" differs algorithm implementation to its subclasses

2. "Builder" makes construction reusable; "Mediator" makes
interaction reusable)

From: Laurent Deniau on
v4vijayakumar wrote:
> Can all design issues boil down to these 23 (GoF) design pattern
> solutions?

These 23 design patterns are not the solutions to all the design issues.
Moreover, they are related to the particular context of object-oriented
programming with static typing.

> (Even some of these design pattern looks same. For example,
>
> 1. "Factory method" differs object creation to subclasses; "Template
> method" differs algorithm implementation to its subclasses
>
> 2. "Builder" makes construction reusable; "Mediator" makes
> interaction reusable)

a+, ld.
From: v4vijayakumar on
On May 3, 3:03 pm, Laurent Deniau <laurent.den...(a)cern.ch> wrote:
> v4vijayakumar wrote:
> > Can all design issues boil down to these 23 (GoF) design pattern
> > solutions?
>
> These 23 design patterns are not the solutions to all the design issues.
> Moreover, they are related to the particular context of object-oriented
> programming with static typing.
>
....
Are there any classifications other than creation, structural and
behavioral?

From: Laurent Deniau on
v4vijayakumar wrote:
> On May 3, 3:03 pm, Laurent Deniau <laurent.den...(a)cern.ch> wrote:
>> v4vijayakumar wrote:
>>> Can all design issues boil down to these 23 (GoF) design pattern
>>> solutions?
>> These 23 design patterns are not the solutions to all the design issues.
>> Moreover, they are related to the particular context of object-oriented
>> programming with static typing.
>>
> ...
> Are there any classifications other than creation, structural and
> behavioral?

- Dynamic patterns which are nearly orthogonal to the ones you cite
since they are related to object-oriented programming with dynamic
typing and dynamic dispatch and offer a very different approach to OOP.

- Dynamic behavioral patterns which are an extension of the behavioral
patterns to introduce some dynamic into static typed languages. See also
adaptive object model or executable design patterns.

- Concurrency patterns which are related to concurrent access problems.

Otherwise, the other group is architectural patterns which address the
problem related to software architecture, which can be seen as part of
the design, but are usually of higher level like the MVC. They also
relies more on dynamic (behavioral) patterns since those have been
developed to solve the architectural problems.

a+, ld.
From: H. S. Lahman on
Responding to V4vijayakumar...

> Can all design issues boil down to these 23 (GoF) design pattern
> solutions?

No. Those happen to deal with some of the more common design situations.
But there are a flock of books out now on design patterns that cover
lots of other situations.

> (Even some of these design pattern looks same. For example,

That's mainly because almost all of the Gof patterns employ some
combination of the same two techniques: delegation and polymorphic
dispatch. In addition, most of the patterns are focused on a single very
basic problem: where behavior must be substituted based on dynamic
context and that substitution is too complex to capture in a simple
static association between a client and some service.

> 1. "Factory method" differs object creation to subclasses; "Template
> method" differs algorithm implementation to its subclasses

I think they are substantially different. Factory Method involves a
single generalization while Template requires a 1:1 mapping between
subclasses of two generalizations.

> 2. "Builder" makes construction reusable; "Mediator" makes
> interaction reusable)

I agree these are pretty close but I think there are still substantial
differences. In Mediator the ConcreteMediator coordinates activities
among two or more ConcreteColleagues. IOW, the coordination rules among
Colleagues are "hard-wired" in ConcreteMediator's implementation. In
Builder, basically all one has is an iteration in Director over invoking
ConcretBuilders and each ConcreteBuilder operates autonomously. IOW,
Director doesn't need to know very much about Builders and does not have
to coordinate any of their collaborations.

--

*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl(a)pathfindermda.com
Pathfinder Solutions
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
"Model-Based Translation: The Next Step in Agile Development". Email
info(a)pathfindermda.com for your copy.
Pathfinder is hiring:
http://www.pathfindermda.com/about_us/careers_pos3.php.
(888)OOA-PATH