Fat interfaces

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
 
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
A fat interface is usually the one which is aimed at serving more than one set of clients. A fat interface looks powerful but indeed quite harmful. By using fat interface, we unavoidably introduce coupling between clients. With the use of a fat interface, you might end up with change program code as a result of an irrelevant part of the interface change. One change of the interface might propagate to large number of clients, since the interface is rich/fat, it will be undoubted have a large number of clients depend on it. As summarized by others before, your code should only dependent on the interfaces it indeed uses.
+
An interface which provides too much access to data or functionality can be said to be a fat interface.  A fat interface usually provides access to a large number of operations, and each operation is often very small.  A fat interface is usually aimed at serving more than one set of clients. A fat interface looks powerful but is indeed quite harmful. Fat interfaces introduce high coupling between the interface and its clients. This means that a small change often propagates to many classes since the change is more likely to require an interface change and fat interfaces are usually used by many classes.   As summarized by others before, your code should only be dependent on the interfaces it actually uses.
  
 
The [[Interface segregation principle]] is targeted at avoiding fat interfaces.
 
The [[Interface segregation principle]] is targeted at avoiding fat interfaces.
 +
 +
Fat interfaces can be made more usable with a [[facade]].
  
 
== External Links ==
 
== External Links ==
Line 12: Line 14:
  
 
http://davidhayden.com/blog/dave/archive/2005/06/15/1482.aspx
 
http://davidhayden.com/blog/dave/archive/2005/06/15/1482.aspx
 +
 +
== See Also ==
 +
* [[Avoid interface bloat]]
 +
* [[Keep it simple]]
 +
* [[You ain't gonna need it]]

Latest revision as of 03:05, 19 October 2010

An interface which provides too much access to data or functionality can be said to be a fat interface. A fat interface usually provides access to a large number of operations, and each operation is often very small. A fat interface is usually aimed at serving more than one set of clients. A fat interface looks powerful but is indeed quite harmful. Fat interfaces introduce high coupling between the interface and its clients. This means that a small change often propagates to many classes since the change is more likely to require an interface change and fat interfaces are usually used by many classes. As summarized by others before, your code should only be dependent on the interfaces it actually uses.

The Interface segregation principle is targeted at avoiding fat interfaces.

Fat interfaces can be made more usable with a facade.

External Links

Link for Interface Segregation Principle:

http://c2.com/cgi/wiki?InterfaceSegregationPrinciple;

http://doodleproject.sourceforge.net/articles/2001/interfaceSegregationPrinciple.html;

http://davidhayden.com/blog/dave/archive/2005/06/15/1482.aspx

See Also

Personal tools