  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Struts - A MVC web framework | | Tomcat - JSP/Servlet container | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | | JSP - A mailing list about Java Server Pages specification and reference | |
Struts & Hibernate
|
|
|
  | | | Association vs Dependency (Offbeat) | Association vs Dependency (Offbeat) 2003-12-30 - By Gupta, Vipul
Back Hi Ashraf,
CAn u provide a simple example for dependency as well.
Secondly, In Association - does it mean the instance of the class can be created independently. Meaning, in the example Example:
Public class customer
{
....
Public Address homeAddress;
......
}
public class Address {
.....
}
Does it mean that the Address class can exist without the customer class or Address class will exist only if Customer class is there.
Regards
Vipul
-- --Original Message-- -- From: ashraf galal [mailto:ashrafwg@(protected)] Sent: Tuesday, December 30, 2003 10:52 AM To: J2EEPATTERNS-INTEREST@(protected) Subject: Re: Association vs Dependency (Offbeat)
Actually, these concepts is UML not a java. You are quite well understanding but I would like to illustrate the difference between them and give an example.
Dependency :
Anytime a class uses another class in some fashion, a dependency exists between the two.
A dependency exists of a class:
- has a reference to an object directly.
- Has a local variable based on another class.
- Has a reference to an object indirectly via some operation parameters.
- Uses a class's static operation
Also there are dependency between packages.
Association:
There is two types of association, unidirectional and bi-directional associations.
Unidirectional association implies that an object of the class may invoke methods on the other class.
In java, this manifest itself as an instance variables on the class that may invoke methods.
Example:
Public class customer
{
....
Public Address homeAddress;
......
}
public class Address {
.....
}
bi-directional association means that either object in the association may invoke methods on other.
In java, this results in an instance variable on each class based on the type of the other class.
Example;
Public class Team
{
LinkedList teamPlayers = new LikedList();
teamPlayers.add(new teamPlayer(...));
......... }
public class teamPlayer {
Team memberOf;
....
}
Ashraf Galal (416)804-8359 >From: ShriKant Vashishtha >Reply-To: An interest list for Sun Java Center J2EE Pattern Catalog >To: J2EEPATTERNS-INTEREST@(protected) >Subject: Association vs Dependency (Offbeat) >Date: Sun, 28 Dec 2003 14:17:03 -0800 > >Hi All, > >I am slightly confused in finding the difference between association and dependency. > >For me, whenever the variable is intialized at a local scope or passed as a parameter in a method, its denoted as dependency. However, for association, I believe, the object needs to be on global scope (as an instance variable). However, I rarely use any object at a global scope, unless I know that it is used for maintaining the state of class or need to be used across different methods. So most of the time, I end up with dependency . > >Am I missing something over here. > >Thanks >-ShriKant > > >-- ---- --- -- ---- ---- ---- ---- >Do you Yahoo!? >Protect your identity with Yahoo! Mail AddressGuard > >==================================================================== >Companion Site: http://www.corej2eepatterns.com >J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns >List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html >Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
__ __
MSN 8 helps ELIMINATE E-MAIL <http://g.msn.com/8HMBENCA/2743??PS=> VIRUSES. Get 2 months FREE*. ==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML xmlns:o = "urn:schemas-microsoft-com:office:office"><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859 (See http://iso-8859.ora-code.com)-1">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD> <BODY> <DIV><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2>Hi Ashraf,</FONT></SPAN></DIV> <DIV><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2></FONT></SPAN> </DIV> <DIV><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2>CAn u provide a simple example for dependency as well.</FONT></SPAN></DIV> <DIV><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2></FONT></SPAN> </DIV> <DIV><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2>Secondly, In Association - does it mean the instance of the class can be created independently.</FONT></SPAN></DIV> <DIV><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2>Meaning, in the example</FONT></SPAN></DIV> <DIV><SPAN class=250352505-30122003> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Example: </FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Public class customer</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>{</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>....</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>Public Address homeAddress;</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>......</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>}</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>public class Address {</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>.....</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>}</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"> </P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2>Does it mean that the Address class can exist without the customer class or Address class will exist only if Customer class is there.</FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN class=250352505-30122003></SPAN><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2></FONT></SPAN> </P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2>Regards</FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN class=250352505-30122003><FONT face=Arial color=#0000ff size=2>Vipul</FONT></SPAN></P></SPAN></DIV> <BLOCKQUOTE> <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma size=2>-- --Original Message-- --<BR><B>From:</B> ashraf galal [mailto:ashrafwg@(protected)]<BR><B>Sent:</B> Tuesday, December 30, 2003 10:52 AM<BR><B>To:</B> J2EEPATTERNS-INTEREST@(protected)<BR><B>Subject:</B> Re: Association vs Dependency (Offbeat)<BR><BR></FONT></DIV> <DIV> <DIV> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Actually, these concepts is UML not a<SPAN style="mso-spacerun: yes"> </SPAN>java.<SPAN style="mso-spacerun: yes"> </SPAN>You are quite well understanding but I would like to illustrate the difference between them and give an example. </FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Dependency :</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Anytime a class uses another class in some fashion, a dependency exists between the two.</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>A dependency exists of a class: </FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list .5in"><FONT face="Times New Roman"><FONT size=3>-</FONT><SPAN style="FONT: 7pt 'Times New Roman'">   ; </SPAN><FONT size=3>has a reference to an object directly.</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list .5in"><FONT face="Times New Roman"><FONT size=3>-</FONT><SPAN style="FONT: 7pt 'Times New Roman'">   ; </SPAN><FONT size=3>Has a local variable based on another class.</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list .5in"><FONT face="Times New Roman"><FONT size=3>-</FONT><SPAN style="FONT: 7pt 'Times New Roman'">   ; </SPAN><FONT size=3>Has a reference to an object indirectly via some operation parameters.</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list .5in"><FONT face="Times New Roman"><FONT size=3>-</FONT><SPAN style="FONT: 7pt 'Times New Roman'">   ; </SPAN><FONT size=3>Uses a class's static operation</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Also there are dependency between packages. </FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Association: </FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>There is two types of association, unidirectional and bi-directional associations. </FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Unidirectional association implies that an object of the class may invoke methods on the other class.</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>In java, this manifest itself as an instance variables on the class that may invoke methods. </FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Example: </FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Public class customer</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>{</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>....</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>Public Address homeAddress;</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>......</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>}</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>public class Address {</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>.....</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>}</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-spacerun: yes"><FONT face="Times New Roman" size=3></FONT></SPAN> </P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>bi-directional association means that either object in the association may invoke methods on other.</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>In java, this results in an instance variable on each class based on the type of the other class.</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Example;</FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman">Public class Team<SPAN style="mso-spacerun: yes"> </SPAN></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>{</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>LinkedList<SPAN style="mso-spacerun: yes"> </SPAN>teamPlayers = new LikedList();</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>teamPlayers.add(new teamPlayer(...));</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>.........<SPAN style="mso-spacerun: yes"> </SPAN>}</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>public class teamPlayer {</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>Team<SPAN style="mso-spacerun: yes"> </SPAN>memberOf; </FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>....</FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>} </FONT></FONT></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"> <o:p></o:p></FONT></FONT></P></DIV> <DIV>Ashraf Galal <BR>(416)804-8359</DIV>>From: ShriKant Vashishtha <SHRISUBS@(protected)>>Reply-To: An interest list for Sun Java Center J2EE Pattern Catalog <J2EEPATTERNS-INTEREST@(protected)>>To: J2EEPATTERNS-INTEREST@(protected) >Subject: Association vs Dependency (Offbeat) >Date: Sun, 28 Dec 2003 14:17:03 -0800 > >Hi All, > >I am slightly confused in finding the difference between association and dependency. > >For me, whenever the variable is intialized at a local scope or passed as a parameter in a method, its denoted as dependency. However, for association, I believe, the object needs to be on global scope (as an instance variable). However, I rarely use any object at a global scope, unless I know that it is used for maintaining the state of class or need to be used across different methods. So most of the time, I end up with dependency . > >Am I missing something over here. > >Thanks >-ShriKant > > >-- ---- --- -- ---- ---- ---- ---- >Do you Yahoo!? >Protect your identity with Yahoo! Mail AddressGuard > >==================================================================== >Companion Site: http://www.corej2eepatterns.com >J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns >List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html >Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected) </DIV><BR clear=all> <HR> MSN 8 helps <A href="http://g.msn.com/8HMBENCA/2743??PS=">ELIMINATE E-MAIL VIRUSES. </A>Get 2 months FREE*. ==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)</BLOCKQUOTE></BODY></HTML> ==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
|
|
 |