views:

203

answers:

6

I was wondering if all design Patterns are only used in Object-Oriented design? Are there any design patterns used in non Object-Oriented design?

Thanks and regards!

+6  A: 

Design Patterns for Functional Strategic Programming
http://homepages.cwi.nl/~ralf/dp-sf.pdf

Incorporating Functional Design Patterns In Software Development
http://www.via-nova-architectura.org/files/UniversityOfTwente/Bosman.pdf

Robert Harvey
Wow - that's denser than the GoF. ;)
TrueWill
+3  A: 

Design patterns are not about specific languages or programming paradigms, but about higher level software designs and their reuse.

Most of the examples seen these days pertain to OOP as this is the most used programming paradigm used at the moment.

See the answers to this SO question (How is OOP and Design Patterns related?).

As can be seen by the other answers to this question, design patterns exist outside of OOP...

Oded
A: 

Organizational Patterns of Agile Software Development (patterns about creating development teams and assigning roles)

ChrisW
There's a clue in the title there - an organisational pattern isn't a software design pattern
Pete Kirkham
@Pete Kirkham - The books is of patterns for designing software development teams. The point I was trying to illustrate was that 'patterns' are a way of presenting solutions to problems in general: not specific to a particular programming language or programming style.
ChrisW
The "organisational patterns" discipline comes from anthropology, and describe recurring emergent structures of behaviour, the "design patterns" discipline comes from architecture, and describes repeatable solutions to specific problems. (or would you also post a "knitting patterns" book?)
Pete Kirkham
@Pete Kirkham - No, not from knitting or anthropology: they're called "patterns" (design patterns) because the topics of the book are written using the http://en.wikipedia.org/wiki/Pattern_language -- e.g. Name, Problem Context (Forces), Resolution (Solution), Rationale, Applicability (including when not to use it), Examples, and Related Patterns.
ChrisW
The use of pattern languages extends well beyond design patterns.
Pete Kirkham
+1  A: 

Design Pattern can be generally refer to proven solution to recurring problems. This is not limited to one programming paradigm.

m3rLinEz
+1  A: 

Absolutely not. It doesn't have to be tied to object-orientation (OOP).

Design Patterns implemented using Aspect-Oriented Programming:

In fact it is possible to inject those patterns in the object models using aspect-oriented programming (AOP) without intruding your domain models. See this example with AspectJ

Another link to design pattern implementation in AOP with AspectJ, it implements numerous patterns from GoF in AOP: Design Pattern Implementations using Aspect-Oriented Programming

Bakkal
+2  A: 

In the past I made a catalog of patterns used in several contexts of software development. This is a partial list of that catalog. Hope it makes the idea

Full image is here: http://rearchitect.files.wordpress.com/2006/01/taxonomy.png

alt text

pierocampanelli