S.O.L.I.D. Development Principles

SOLID Development Principles

25% Off CouponS.O.L.I.D. is a collection of best-practice object-oriented design principles that you can apply to your design to accomplish various desirable goals like loose-coupling, higher maintainability, intuitive location of interesting code, etc. 

S.O.L.I.D. is an acronym for the following principles (which are, themselves acronyms — confused yet?).

SRP: Single Responsibility Principle

SRP – THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE.

OCP: Open Closed Principle

OCP – SOFTWARE ENTITIES (CLASSES, MODULES, FUNCTIONS, ETC.) SHOULD BE OPEN FOR EXTENSION BUT CLOSED FOR MODIFICATION.

LSP: Liskov Substitution Principle

LSP – FUNCTIONS THAT USE … REFERENCES TO BASE CLASSES MUST BE ABLE TO USE OBJECTS OF DERIVED CLASSES  WITHOUT KNOWING IT.

ISP: Interface Segregation Principle

ISP – CLIENTS SHOULD NOT BE FORCED TO DEPEND UPON INTERFACES THAT THEY DO NOT USE

DIP: Dependency Inversion Principle

DIP – HIGH LEVEL MODULES SHOULD NOT DEPEND UPON LOW LEVEL MODULES. BOTH SHOULD DEPEND UPON ABSTRACTION.  ABSTRACTIONS SHOULD NOT DEPEND UPON DETAILS. DETAILS SHOULD DEPEND UPON ABSTRACTIONS

Advertisements
Published in: on December 15, 2009 at 4:48 pm  Comments (1)  

The URI to TrackBack this entry is: https://blackbeltreview.wordpress.com/2009/12/15/solid-development-principles/trackback/

RSS feed for comments on this post.

One CommentLeave a comment

  1. […] link! Black Belt Review Possibly related posts: (automatically generated)Day 2 in Patterns and principlesThe Principles of […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: