CSC/ECE 517 Fall 2009/wiki3 3 cp: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 14: Line 14:


==Introduction and Objective==
==Introduction and Objective==
According to [http://www.objectmentor.com/omTeam/martin_r.html Robert Martin] the definition of Common Closure Principle is that 
There are several web pages that explain in few words what is Common Closure Principle, but they fall short by just giving definitions and very few examples.


"Classes within a released component should share common closure. That is, if one needs to be changed, they all are likely to need to be changed. What affects one, affects all."
Therefore the objective of the wiki work is to dedicate a deeper investigation on this topic and application examples.


==How to Implement Common Closure Principle ?==
==How to Implement Common Closure Principle ?==

Revision as of 03:57, 18 November 2009

Common Closure Principle

In simple words the Common Closure Principle refers to classes that change topether, belong together, this is a very simple definition taken from the book Java Design: Objects, UML and Process written by Kirk Knoernschild.

A more explained definition of Common Closure Principle, given by Robert Martin, is

      THE CLASSES IN A PACKAGE SHOULD BE CLOSED TOGETHER AGAINTS THE SAME 
      KINDS OF CHANGES. A CHANGE THAT AFFECTS A PACKAGE AFFECTS ALL THE 
      CLASSES WITHIN THAT PACKAGE. 
      

See Granularity PDF Article written by Robert Martin for more details

In other words, what affects one, affects all broader and detailed explanations are given in this wikiwork.

Introduction and Objective

There are several web pages that explain in few words what is Common Closure Principle, but they fall short by just giving definitions and very few examples.

Therefore the objective of the wiki work is to dedicate a deeper investigation on this topic and application examples.

How to Implement Common Closure Principle ?

Java Example

Ruby Example

What are the advantages and disadvantages?

Reading Recommendations

Reference Books

External Links

Bob Martin's

Appendix