Software Design Patterns
I found some good info while researching best practice "design patterns", so thought I'd share these with you. First though, here's a reasonable definition of a "design pattern" in the realm of software, from Wikipedia:
"In software engineering (or computer science), a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved. Algorithms are not thought of as design patterns, since they solve computational problems rather than design problems.
Not all software patterns are design patterns. Design patterns deal specifically with problems at the level of software design. Other kinds of patterns, such as architectural patterns, describe problems and solutions that have alternative scopes."
The following are a combination of definitions, design pattern "patterns", resources and examples of design pattern articles: