Avoid god classes

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
(adding more relevant links)
m (adding the fact that it is an antipattern)
Line 3: Line 3:
 
Instead of having objects collaborate and distribute data among themselves, they rely to the god object as a "centralised data center". As a consequence of this, maintenance can become difficult. The god class usually has too many number of irrelevant functions or too many global variables.
 
Instead of having objects collaborate and distribute data among themselves, they rely to the god object as a "centralised data center". As a consequence of this, maintenance can become difficult. The god class usually has too many number of irrelevant functions or too many global variables.
  
However, there is an instance in which a god class is particularly useful, where performance is needed over maintainability (eg. micro-controllers or hardware programming)
+
However, there is an instance in which a god class is particularly useful, where performance is needed over maintainability (eg. micro-controllers or hardware programming).
  
== Relevant Links ==  
+
God class/god object is a known software design antipattern.
 +
 
 +
== See also ==  
 
* [[Single responsibility principle]]
 
* [[Single responsibility principle]]
 
* [[Separation of concerns]]
 
* [[Separation of concerns]]
 
* [[Model the real world]]
 
* [[Model the real world]]
* [[Tell, don't ask]]
+
* [[Antipatterns]]

Revision as of 04:05, 6 October 2008

A god class is a class that either know too much or does too much; a class that have to deal with too many responsibilities. The instantiated object of a god class is called a god object.

Instead of having objects collaborate and distribute data among themselves, they rely to the god object as a "centralised data center". As a consequence of this, maintenance can become difficult. The god class usually has too many number of irrelevant functions or too many global variables.

However, there is an instance in which a god class is particularly useful, where performance is needed over maintainability (eg. micro-controllers or hardware programming).

God class/god object is a known software design antipattern.

See also

Personal tools