Software Development, Agile Practices, Lean Thinking, Music
[ start | index | login or register ]
start > Design Principles

Design Principles

Created by brandon. Last edited by brandon, 3 years and 152 days ago. Viewed 831 times. #6
[diff] [history] [edit] [rdf]
labels
attachments

Principles and Tenets of Object Oriented Development

Notes from one of my favorite Robert C. Martin articles.
Reference: >>http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf

Dependency Management Principles

The Open Closed Principle

Bob Martin sites Bertrand Meyer as the originator of this idea. Basically, modules of software should be designed to be open for reuse and extension but closed for source code modification.

The Liskov Substitution Principle

Barbar Liskov introduced this principle in that subclasses should be substitutable for their base classes and not effect the user of the base class. Bob Martin highlights the fact that violation of this principle is indeed a latent violation of the Open Closed principle.

The Dependency Inversion Principle

Uncle Bob succinctly sums up this principle. Depend upon abstractions, not upon concretions.This principle is the mechanism to achieve the Open Closed principle.

The Interface Segregation Principle

Many client specific interfaces are better than one general purpose interface. Basically do not create one uber interface for all clients needs, instead decompose them and then use multiple inheritance. This lends itself to the idea of favoring composition over pure inheritance as well.

Package Cohesion Principles

The Release Reuse Equivalence Principle

The Common Closure Principle

The Common Reuse Principle

The Acyclic Dependencies Principle

The Stable Dependencies Principle

The Stable Abstractions Principle

...

no comments | post comment
Describe here what your SnipSnap is about!

Configure this box!

  1. Login in
  2. Click here: snipsnap-portlet-2
  3. Edit this box
www.brandonburk.com | Copyright 2008 Brandon N. Burk