Fat interfaces
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. | 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. | ||
− | The [[ | + | The [[Interface_Segregation_Principle]] is targeted at avoiding fat interfaces. |
== External Links == | == External Links == |
Revision as of 08:48, 22 September 2008
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.
The Interface_Segregation_Principle is targeted at avoiding fat interfaces.
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