Re: one desing question, Revisited

2003-02-03 Thread Malik Recoing
Friday, January 31, 2003 5:31 PM , Cory Newey <[EMAIL PROTECTED]> a
écrit :
> I don't understand your response.  The code I propose below does in
> fact use delegation to factorize the functions.

I'm ok with that.

> However, by
> utilizing an interface, all code that works with MyAction and
> MyDispatchAction objects now has a contract that says that both
> objects support the CommonFunction methods.  Thus that code can deal
> with both objects as CommonFunction objects if it wants to.

I was just pointing out is that probably no client code will use the
CommonFunction interface of MyAction and the MyDispatchAction but themselve
so it's maybe not usefull to implement it. And even if a client need
CommonFunction why should they use a MyAction or MyDispatchAction instance
rather than a CommonFunctionImpl instance ?

If there is a need for a contract here, it's also a contract for a behavior
not just for an interface. When you multi-inherite you take the interface
and the behavior of each parent classes. It's not garanteed here for the
clients of CommonFunction interface that they will have the behavior of
CommonFounctionImpl. If you implement a function of CommonFonction another
way than delgating to CommonFunctionImpl nothing will warn you about. So it
is not quite like if you extends Action and CommonFunctionImpl.

Java does not support multiple inhereteance and so there is *no way* to
replace it exactly. This said, and Ashish warned, your code is very clean, I
have nothing about that.

>  This is
> what I understood that Ashish wanted to do.  IOW, what's your beef?
>
> --Cory
>
> > > > [EMAIL PROTECTED] 01/31/03 09:17AM >>>
> I don't agree with the interface solution. As the name sugest
> CommonFunction
> seems to be only factorization of code and not a real type. MyAction
> and
> MyDispatchAction will never be called from outside as some
> 'CommonFunction'.
> Interfaces are meant to be externals contracts not a way to replace
> inheritance.
>
> IMHO when you want to factorize functions in sevral Classes of
> different
> types you only need to delegate. But maybe I missunderstood what
> Ashish
> whant.
>
> Malik.
>
>
> Friday, January 31, 2003 4:55 PM , Cory Newey <[EMAIL PROTECTED]> a
> écrit :
> > Yeah, if you read his entire post, he says that he knows that
> > multiple inheritance isn't allowed in Java.  It looks to me like
> > you'll have to make CommonFunctions an interface.  If the methods
> > in CommonFunctions actually are identical for both MyAction and
> > MyDispatchAction, you could avoid having duplicate code in the two
> > classes by deligating to a third object that actually implements
> > the methods.  What you would end up with would look something like
> > this:
> >
> > MyAction extends Action implements CommonFunctions {
> >private CommonFunctionsImpl common = new CommonFunctionsImpl();
> >... methods in CommonFunctions interface that just call the
> > common object above to the real work ...
> > }
> >
> > MyDispatchAction extends DispatchAction implements CommonFunctions {
> >private CommonFunctionsImpl common = new CommonFunctionsImpl();
> >... methods in CommonFunctions interface that just call the
> > common object above to the real work ...
> > }
> >
> > CommonFunctionsImpl implements CommonFunctions {
> >... methods that do the real work ...
> > }
> >
> > --Cory
> >
> > Cory R. Newey
> > [EMAIL PROTECTED]
> > Senior Software Engineer
> > Novell, the leading provider of Net services software
> >
> >
> > > > > [EMAIL PROTECTED] 01/31/03 08:41AM >>>
> > I'm going to save you from getting flamed java does not allow
> > multiple
> > inheritance.  You can only extend from a single Object.
> >
> > -Jacob
> >
> > > -Original Message-
> > > From: Ashish Kulkarni [mailto:[EMAIL PROTECTED]]
> > > Sent: Friday, January 31, 2003 9:34 AM
> > > To: [EMAIL PROTECTED]
> > > Subject: one desing question, Revisited
> > >
> > > Hi,
> > >
> > > When i was thinking about my problem, I think what i
> > > want to do in multiple inhereteance
> > > I want to define a class called CommonFunctions , this
> > > call will have methods which are common, (As name
> > > suggest)
> > > now i have to do some thing like
> > > public class MyAction extends Action, CommonFuntions
> > >
> > > and public class MyDisptachAction extends
> > > DispatchAction, CommonFuntions
> > >
> > > By doing this i will be able to access all the methods
> > > in the class which sybclasses MyAction or
> > > MyDispatchAction
> > > I know the code above is not possible to do, but i
> > > want to do some thing like that..
> > > So what are the ways of achieving it
> > >
> > > =
> > > A$HI$H
> > >
> > > __
> > > Do you Yahoo!?
> > > Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
> > > http://mailplus.yahoo.com
> > >
> > >
> > -
> > > To unsubscribe, e-mail: [EMAIL PRO

Re: one desing question, Revisited

2003-01-31 Thread Matthew Meyer
The interface provides both flexability in the 
delegation(aka different versions of the common funtions 
can exist), and it enforces an API.
Interfaces don't need to be logically functional objects. 
When was the last time you cast an object to Serializable 
and manipulated it?

Matt,


On Fri, 31 Jan 2003 17:23:29 +0100
 "Malik Recoing" <[EMAIL PROTECTED]> wrote:
I Ask : "What the real apport of implementing 
CommonFunctionInterface in
each classes rather than just using common.aFunction() 
where you need it ?"
(but maintaining more code).

Malik.

Friday, January 31, 2003 5:17 PM , Ashish Kulkarni
<[EMAIL PROTECTED]> a écrit :
Hi
Thanx for the all the mails, this is what i plan to do
public interface CommonFunctionInterface{
// all my common methods;
   public Connection getConnection();

}

public class CommonFunction implements
CommonFunctionInterface{

public Connection getConnection(){
// provide the implementation here

}
}

public class MyAction extends Action implements
CommonFunctionInterface{
private final CommonFunction common;

public MyAction(){
common = new CommonFunction();
}

public Connection getConnnection(){
return common.getConnection();
}

}

public MyClass extends MyAction{
// now you should inherit getConnection()
without problem }


Ashish


--- John Espey <[EMAIL PROTECTED]> wrote:
> sorry, the action wouldn't pass itself, it would
> pass its class.
>
> -Original Message-
> From: John Espey [mailto:[EMAIL PROTECTED]]
> Sent: Friday, January 31, 2003 10:10 AM
> To: Struts Users Mailing List
> Subject: RE: one desing question, Revisited
>
>
> You could create a CommonFunctionsFactory, with a
> method:
>
> CommonFunctions getCommonFunctionsByClass(Class)
>
> Your action could pass itself to this call to
> retrieve a CommonFunctions
> implementation, determined by the Factory, which
> could look up in a
> properties file which implementation to create for
> the specified class.  You
> wouldn't really need to have your action implement
> CommonFunctions.  If you
> needed to modify the behavior of your
> CommonFunctionsImpl for a given action
> class, you could extend CommonFunctionsImpl, and
> then map the action class
> to that new subclass.
>
> -Original Message-----
> From: Matthew Meyer [mailto:[EMAIL PROTECTED]]
> Sent: Friday, January 31, 2003 10:00 AM
> To: Struts Users Mailing List
> Subject: Re: one desing question, Revisited
>
>
> What you will want to is make your commonFunctions
> an
> interface. Next write a class to implement all of
> your
> common functions. Then Write your action extending
> Action
> and implementing your commonFunctions interface.
> Make your
> common funtions an instance variable of your action
> and
> then simply delegate all the commonFunction messages
> your
> action recieves to your commonFunction instance
> variable
> like so:
>  public  method(..., ) {
> return commonFuntionInstance.method(,
> );
>  }
> Hope this helps you out...
>
> Matt,
>
>
> On Fri, 31 Jan 2003 07:45:22 -0800 (PST)
>   Ashish Kulkarni <[EMAIL PROTECTED]>
> wrote:
> > Hi,
> > I know java does not allow multiple inheritance,
> but I
> > gave that example so i can make it clear what i
> want
> > to do,
> > So i want to find out a work around to achieve what
> i
> > have explanned in the example
> > Ashish
> > --- Jacob Hookom <[EMAIL PROTECTED]> wrote:
> > > I'm going to save you from getting flamed
> java
> > > does not allow multiple
> > > inheritance.  You can only extend from a single
> > > Object.
> > >
> > > -Jacob
> > >
> > > > -Original Message-
> > > > From: Ashish Kulkarni
> > > [mailto:[EMAIL PROTECTED]]
> > > > Sent: Friday, January 31, 2003 9:34 AM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: one desing question, Revisited
> > > >
> > > > Hi,
> > > >
> > > > When i was thinking about my problem, I think
> what
> > > i
> > > > want to do in multiple inhereteance
> > > > I want to define a class called CommonFunctions
> ,
> > > this
> > > > call will have methods which are common, (As
> name
> > > > suggest)
> > > > now i have to do some thing like
> > > > public class MyAction extends Action,
> > > CommonFuntions
> > > >
&g

Re: one desing question, Revisited

2003-01-31 Thread Cory Newey
I don't understand your response.  The code I propose below does in fact use 
delegation to factorize the functions.  However, by utilizing an interface, all code 
that works with MyAction and MyDispatchAction objects now has a contract that says 
that both objects support the CommonFunction methods.  Thus that code can deal with 
both objects as CommonFunction objects if it wants to.  This is what I understood that 
Ashish wanted to do.  IOW, what's your beef?

--Cory

>>> [EMAIL PROTECTED] 01/31/03 09:17AM >>>
I don't agree with the interface solution. As the name sugest CommonFunction
seems to be only factorization of code and not a real type. MyAction and
MyDispatchAction will never be called from outside as some 'CommonFunction'.
Interfaces are meant to be externals contracts not a way to replace
inheritance.

IMHO when you want to factorize functions in sevral Classes of different
types you only need to delegate. But maybe I missunderstood what Ashish
whant.

Malik.


Friday, January 31, 2003 4:55 PM , Cory Newey <[EMAIL PROTECTED]> a
écrit :
> Yeah, if you read his entire post, he says that he knows that multiple
> inheritance isn't allowed in Java.  It looks to me like you'll have to
> make CommonFunctions an interface.  If the methods in CommonFunctions
> actually are identical for both MyAction and MyDispatchAction, you
> could avoid having duplicate code in the two classes by deligating to
> a third object that actually implements the methods.  What you would
> end up with would look something like this:
>
> MyAction extends Action implements CommonFunctions {
>private CommonFunctionsImpl common = new CommonFunctionsImpl();
>... methods in CommonFunctions interface that just call the common
> object above to the real work ...
> }
>
> MyDispatchAction extends DispatchAction implements CommonFunctions {
>private CommonFunctionsImpl common = new CommonFunctionsImpl();
>... methods in CommonFunctions interface that just call the common
> object above to the real work ...
> }
>
> CommonFunctionsImpl implements CommonFunctions {
>... methods that do the real work ...
> }
>
> --Cory
>
> Cory R. Newey
> [EMAIL PROTECTED] 
> Senior Software Engineer
> Novell, the leading provider of Net services software
>
>
> > > > [EMAIL PROTECTED] 01/31/03 08:41AM >>>
> I'm going to save you from getting flamed java does not allow
> multiple
> inheritance.  You can only extend from a single Object.
>
> -Jacob
>
> > -Original Message-
> > From: Ashish Kulkarni [mailto:[EMAIL PROTECTED]] 
> > Sent: Friday, January 31, 2003 9:34 AM
> > To: [EMAIL PROTECTED] 
> > Subject: one desing question, Revisited
> >
> > Hi,
> >
> > When i was thinking about my problem, I think what i
> > want to do in multiple inhereteance
> > I want to define a class called CommonFunctions , this
> > call will have methods which are common, (As name
> > suggest)
> > now i have to do some thing like
> > public class MyAction extends Action, CommonFuntions
> >
> > and public class MyDisptachAction extends
> > DispatchAction, CommonFuntions
> >
> > By doing this i will be able to access all the methods
> > in the class which sybclasses MyAction or
> > MyDispatchAction
> > I know the code above is not possible to do, but i
> > want to do some thing like that..
> > So what are the ways of achieving it
> >
> > =
> > A$HI$H
> >
> > __
> > Do you Yahoo!?
> > Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
> > http://mailplus.yahoo.com 
> >
> >
> -
> > To unsubscribe, e-mail: [EMAIL PROTECTED] 
> > For additional commands, e-mail: [EMAIL PROTECTED] 
>
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED] 
> For additional commands, e-mail: [EMAIL PROTECTED] 
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED] 
> For additional commands, e-mail: [EMAIL PROTECTED] 


-
To unsubscribe, e-mail: [EMAIL PROTECTED] 
For additional commands, e-mail: [EMAIL PROTECTED] 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: one desing question, Revisited

2003-01-31 Thread Malik Recoing
I Ask : "What the real apport of implementing CommonFunctionInterface in
each classes rather than just using common.aFunction() where you need it ?"
(but maintaining more code).

Malik.

Friday, January 31, 2003 5:17 PM , Ashish Kulkarni
<[EMAIL PROTECTED]> a écrit :
> Hi
> Thanx for the all the mails, this is what i plan to do
> public interface CommonFunctionInterface{
> // all my common methods;
>public Connection getConnection();
>
> }
>
> public class CommonFunction implements
> CommonFunctionInterface{
>
> public Connection getConnection(){
> // provide the implementation here
>
> }
> }
>
> public class MyAction extends Action implements
> CommonFunctionInterface{
> private final CommonFunction common;
>
> public MyAction(){
> common = new CommonFunction();
> }
>
> public Connection getConnnection(){
> return common.getConnection();
> }
>
> }
>
> public MyClass extends MyAction{
> // now you should inherit getConnection()
> without problem }
>
>
> Ashish
>
>
> --- John Espey <[EMAIL PROTECTED]> wrote:
> > sorry, the action wouldn't pass itself, it would
> > pass its class.
> >
> > -----Original Message-
> > From: John Espey [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, January 31, 2003 10:10 AM
> > To: Struts Users Mailing List
> > Subject: RE: one desing question, Revisited
> >
> >
> > You could create a CommonFunctionsFactory, with a
> > method:
> >
> > CommonFunctions getCommonFunctionsByClass(Class)
> >
> > Your action could pass itself to this call to
> > retrieve a CommonFunctions
> > implementation, determined by the Factory, which
> > could look up in a
> > properties file which implementation to create for
> > the specified class.  You
> > wouldn't really need to have your action implement
> > CommonFunctions.  If you
> > needed to modify the behavior of your
> > CommonFunctionsImpl for a given action
> > class, you could extend CommonFunctionsImpl, and
> > then map the action class
> > to that new subclass.
> >
> > -Original Message-
> > From: Matthew Meyer [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, January 31, 2003 10:00 AM
> > To: Struts Users Mailing List
> > Subject: Re: one desing question, Revisited
> >
> >
> > What you will want to is make your commonFunctions
> > an
> > interface. Next write a class to implement all of
> > your
> > common functions. Then Write your action extending
> > Action
> > and implementing your commonFunctions interface.
> > Make your
> > common funtions an instance variable of your action
> > and
> > then simply delegate all the commonFunction messages
> > your
> > action recieves to your commonFunction instance
> > variable
> > like so:
> >  public  method(..., ) {
> > return commonFuntionInstance.method(,
> > );
> >  }
> > Hope this helps you out...
> >
> > Matt,
> >
> >
> > On Fri, 31 Jan 2003 07:45:22 -0800 (PST)
> >   Ashish Kulkarni <[EMAIL PROTECTED]>
> > wrote:
> > > Hi,
> > > I know java does not allow multiple inheritance,
> > but I
> > > gave that example so i can make it clear what i
> > want
> > > to do,
> > > So i want to find out a work around to achieve what
> > i
> > > have explanned in the example
> > > Ashish
> > > --- Jacob Hookom <[EMAIL PROTECTED]> wrote:
> > > > I'm going to save you from getting flamed
> > java
> > > > does not allow multiple
> > > > inheritance.  You can only extend from a single
> > > > Object.
> > > >
> > > > -Jacob
> > > >
> > > > > -Original Message-
> > > > > From: Ashish Kulkarni
> > > > [mailto:[EMAIL PROTECTED]]
> > > > > Sent: Friday, January 31, 2003 9:34 AM
> > > > > To: [EMAIL PROTECTED]
> > > > > Subject: one desing question, Revisited
> > > > >
> > > > > Hi,
> > > > >
> > > > > When i was thinking about my problem, I think
> > what
> > > > i
> > > > > want to do in multiple inhereteance
> > > > > I want to define a class called CommonFunctions
> > ,
> > > > this
> > > > > call will have methods whi

Re: one desing question, Revisited

2003-01-31 Thread Malik Recoing
I don't agree with the interface solution. As the name sugest CommonFunction
seems to be only factorization of code and not a real type. MyAction and
MyDispatchAction will never be called from outside as some 'CommonFunction'.
Interfaces are meant to be externals contracts not a way to replace
inheritance.

IMHO when you want to factorize functions in sevral Classes of different
types you only need to delegate. But maybe I missunderstood what Ashish
whant.

Malik.


Friday, January 31, 2003 4:55 PM , Cory Newey <[EMAIL PROTECTED]> a
écrit :
> Yeah, if you read his entire post, he says that he knows that multiple
> inheritance isn't allowed in Java.  It looks to me like you'll have to
> make CommonFunctions an interface.  If the methods in CommonFunctions
> actually are identical for both MyAction and MyDispatchAction, you
> could avoid having duplicate code in the two classes by deligating to
> a third object that actually implements the methods.  What you would
> end up with would look something like this:
>
> MyAction extends Action implements CommonFunctions {
>private CommonFunctionsImpl common = new CommonFunctionsImpl();
>... methods in CommonFunctions interface that just call the common
> object above to the real work ...
> }
>
> MyDispatchAction extends DispatchAction implements CommonFunctions {
>private CommonFunctionsImpl common = new CommonFunctionsImpl();
>... methods in CommonFunctions interface that just call the common
> object above to the real work ...
> }
>
> CommonFunctionsImpl implements CommonFunctions {
>... methods that do the real work ...
> }
>
> --Cory
>
> Cory R. Newey
> [EMAIL PROTECTED]
> Senior Software Engineer
> Novell, the leading provider of Net services software
>
>
> > > > [EMAIL PROTECTED] 01/31/03 08:41AM >>>
> I'm going to save you from getting flamed java does not allow
> multiple
> inheritance.  You can only extend from a single Object.
>
> -Jacob
>
> > -Original Message-
> > From: Ashish Kulkarni [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, January 31, 2003 9:34 AM
> > To: [EMAIL PROTECTED]
> > Subject: one desing question, Revisited
> >
> > Hi,
> >
> > When i was thinking about my problem, I think what i
> > want to do in multiple inhereteance
> > I want to define a class called CommonFunctions , this
> > call will have methods which are common, (As name
> > suggest)
> > now i have to do some thing like
> > public class MyAction extends Action, CommonFuntions
> >
> > and public class MyDisptachAction extends
> > DispatchAction, CommonFuntions
> >
> > By doing this i will be able to access all the methods
> > in the class which sybclasses MyAction or
> > MyDispatchAction
> > I know the code above is not possible to do, but i
> > want to do some thing like that..
> > So what are the ways of achieving it
> >
> > =
> > A$HI$H
> >
> > __
> > Do you Yahoo!?
> > Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
> > http://mailplus.yahoo.com
> >
> >
> -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




RE: one desing question, Revisited

2003-01-31 Thread Ashish Kulkarni
Hi
Thanx for the all the mails, this is what i plan to do
public interface CommonFunctionInterface{
// all my common methods;
   public Connection getConnection();

}

public class CommonFunction implements
CommonFunctionInterface{

public Connection getConnection(){
// provide the implementation here

}
}

public class MyAction extends Action implements
CommonFunctionInterface{
private final CommonFunction common;

public MyAction(){
common = new CommonFunction();
}

public Connection getConnnection(){
return common.getConnection();
}

}

public MyClass extends MyAction{
// now you should inherit getConnection()
without problem }


Ashish


--- John Espey <[EMAIL PROTECTED]> wrote:
> sorry, the action wouldn't pass itself, it would
> pass its class.
> 
> -Original Message-
> From: John Espey [mailto:[EMAIL PROTECTED]]
> Sent: Friday, January 31, 2003 10:10 AM
> To: Struts Users Mailing List
> Subject: RE: one desing question, Revisited
> 
> 
> You could create a CommonFunctionsFactory, with a
> method:
> 
> CommonFunctions getCommonFunctionsByClass(Class)
> 
> Your action could pass itself to this call to
> retrieve a CommonFunctions
> implementation, determined by the Factory, which
> could look up in a
> properties file which implementation to create for
> the specified class.  You
> wouldn't really need to have your action implement
> CommonFunctions.  If you
> needed to modify the behavior of your
> CommonFunctionsImpl for a given action
> class, you could extend CommonFunctionsImpl, and
> then map the action class
> to that new subclass.
> 
> -Original Message-
> From: Matthew Meyer [mailto:[EMAIL PROTECTED]]
> Sent: Friday, January 31, 2003 10:00 AM
> To: Struts Users Mailing List
> Subject: Re: one desing question, Revisited
> 
> 
> What you will want to is make your commonFunctions
> an
> interface. Next write a class to implement all of
> your
> common functions. Then Write your action extending
> Action
> and implementing your commonFunctions interface.
> Make your
> common funtions an instance variable of your action
> and
> then simply delegate all the commonFunction messages
> your
> action recieves to your commonFunction instance
> variable
> like so:
>  public  method(..., ) {
> return commonFuntionInstance.method(,
> );
>  }
> Hope this helps you out...
> 
> Matt,
> 
> 
> On Fri, 31 Jan 2003 07:45:22 -0800 (PST)
>   Ashish Kulkarni <[EMAIL PROTECTED]>
> wrote:
> >Hi,
> >I know java does not allow multiple inheritance,
> but I
> >gave that example so i can make it clear what i
> want
> >to do,
> >So i want to find out a work around to achieve what
> i
> >have explanned in the example
> >Ashish
> >--- Jacob Hookom <[EMAIL PROTECTED]> wrote:
> >> I'm going to save you from getting flamed
> java
> >> does not allow multiple
> >> inheritance.  You can only extend from a single
> >> Object.
> >>
> >> -Jacob
> >>
> >> | -Original Message-
> >> | From: Ashish Kulkarni
> >> [mailto:[EMAIL PROTECTED]]
> >> | Sent: Friday, January 31, 2003 9:34 AM
> >> | To: [EMAIL PROTECTED]
> >> | Subject: one desing question, Revisited
> >> |
> >> | Hi,
> >> |
> >> | When i was thinking about my problem, I think
> what
> >> i
> >> | want to do in multiple inhereteance
> >> | I want to define a class called CommonFunctions
> ,
> >> this
> >> | call will have methods which are common, (As
> name
> >> | suggest)
> >> | now i have to do some thing like
> >> | public class MyAction extends Action,
> >> CommonFuntions
> >> |
> >> | and public class MyDisptachAction extends
> >> | DispatchAction, CommonFuntions
> >> |
> >> | By doing this i will be able to access all the
> >> methods
> >> | in the class which sybclasses MyAction or
> >> | MyDispatchAction
> >> | I know the code above is not possible to do,
> but i
> >> | want to do some thing like that..
> >> | So what are the ways of achieving it
> >> |
> >> | =
> >> | A$HI$H
> >> |
> >> |
> __
> >> | Do you Yahoo!?
> >> | Yahoo! Mail Plus - Powerful. Affordable. Sign
> up
> >> now.
> >> | http://mailplus.yahoo.com
> >> |
> >> |
&g

RE: one desing question, Revisited

2003-01-31 Thread John Espey
sorry, the action wouldn't pass itself, it would pass its class.

-Original Message-
From: John Espey [mailto:[EMAIL PROTECTED]]
Sent: Friday, January 31, 2003 10:10 AM
To: Struts Users Mailing List
Subject: RE: one desing question, Revisited


You could create a CommonFunctionsFactory, with a method:

CommonFunctions getCommonFunctionsByClass(Class)

Your action could pass itself to this call to retrieve a CommonFunctions
implementation, determined by the Factory, which could look up in a
properties file which implementation to create for the specified class.  You
wouldn't really need to have your action implement CommonFunctions.  If you
needed to modify the behavior of your CommonFunctionsImpl for a given action
class, you could extend CommonFunctionsImpl, and then map the action class
to that new subclass.

-Original Message-
From: Matthew Meyer [mailto:[EMAIL PROTECTED]]
Sent: Friday, January 31, 2003 10:00 AM
To: Struts Users Mailing List
Subject: Re: one desing question, Revisited


What you will want to is make your commonFunctions an
interface. Next write a class to implement all of your
common functions. Then Write your action extending Action
and implementing your commonFunctions interface. Make your
common funtions an instance variable of your action and
then simply delegate all the commonFunction messages your
action recieves to your commonFunction instance variable
like so:
 public  method(..., ) {
return commonFuntionInstance.method(, );
 }
Hope this helps you out...

Matt,


On Fri, 31 Jan 2003 07:45:22 -0800 (PST)
  Ashish Kulkarni <[EMAIL PROTECTED]> wrote:
>Hi,
>I know java does not allow multiple inheritance, but I
>gave that example so i can make it clear what i want
>to do,
>So i want to find out a work around to achieve what i
>have explanned in the example
>Ashish
>--- Jacob Hookom <[EMAIL PROTECTED]> wrote:
>> I'm going to save you from getting flamed java
>> does not allow multiple
>> inheritance.  You can only extend from a single
>> Object.
>>
>> -Jacob
>>
>> | -Original Message-
>> | From: Ashish Kulkarni
>> [mailto:[EMAIL PROTECTED]]
>> | Sent: Friday, January 31, 2003 9:34 AM
>> | To: [EMAIL PROTECTED]
>> | Subject: one desing question, Revisited
>> |
>> | Hi,
>> |
>> | When i was thinking about my problem, I think what
>> i
>> | want to do in multiple inhereteance
>> | I want to define a class called CommonFunctions ,
>> this
>> | call will have methods which are common, (As name
>> | suggest)
>> | now i have to do some thing like
>> | public class MyAction extends Action,
>> CommonFuntions
>> |
>> | and public class MyDisptachAction extends
>> | DispatchAction, CommonFuntions
>> |
>> | By doing this i will be able to access all the
>> methods
>> | in the class which sybclasses MyAction or
>> | MyDispatchAction
>> | I know the code above is not possible to do, but i
>> | want to do some thing like that..
>> | So what are the ways of achieving it
>> |
>> | =
>> | A$HI$H
>> |
>> | __
>> | Do you Yahoo!?
>> | Yahoo! Mail Plus - Powerful. Affordable. Sign up
>> now.
>> | http://mailplus.yahoo.com
>> |
>> |
>>
>-
>> | To unsubscribe, e-mail:
>> [EMAIL PROTECTED]
>> | For additional commands, e-mail:
>> [EMAIL PROTECTED]
>>
>>
>>
>-
>> To unsubscribe, e-mail:
>> [EMAIL PROTECTED]
>> For additional commands, e-mail:
>> [EMAIL PROTECTED]
>>
>
>
>=
>A$HI$H
>
>__
>Do you Yahoo!?
>Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
>http://mailplus.yahoo.com
>
>-
>To unsubscribe, e-mail:
>[EMAIL PROTECTED]
>For additional commands, e-mail:
>[EMAIL PROTECTED]
>


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




RE: one desing question, Revisited

2003-01-31 Thread John Espey
You could create a CommonFunctionsFactory, with a method:

CommonFunctions getCommonFunctionsByClass(Class)

Your action could pass itself to this call to retrieve a CommonFunctions
implementation, determined by the Factory, which could look up in a
properties file which implementation to create for the specified class.  You
wouldn't really need to have your action implement CommonFunctions.  If you
needed to modify the behavior of your CommonFunctionsImpl for a given action
class, you could extend CommonFunctionsImpl, and then map the action class
to that new subclass.

-Original Message-
From: Matthew Meyer [mailto:[EMAIL PROTECTED]]
Sent: Friday, January 31, 2003 10:00 AM
To: Struts Users Mailing List
Subject: Re: one desing question, Revisited


What you will want to is make your commonFunctions an
interface. Next write a class to implement all of your
common functions. Then Write your action extending Action
and implementing your commonFunctions interface. Make your
common funtions an instance variable of your action and
then simply delegate all the commonFunction messages your
action recieves to your commonFunction instance variable
like so:
 public  method(..., ) {
return commonFuntionInstance.method(, );
 }
Hope this helps you out...

Matt,


On Fri, 31 Jan 2003 07:45:22 -0800 (PST)
  Ashish Kulkarni <[EMAIL PROTECTED]> wrote:
>Hi,
>I know java does not allow multiple inheritance, but I
>gave that example so i can make it clear what i want
>to do,
>So i want to find out a work around to achieve what i
>have explanned in the example
>Ashish
>--- Jacob Hookom <[EMAIL PROTECTED]> wrote:
>> I'm going to save you from getting flamed java
>> does not allow multiple
>> inheritance.  You can only extend from a single
>> Object.
>>
>> -Jacob
>>
>> | -Original Message-
>> | From: Ashish Kulkarni
>> [mailto:[EMAIL PROTECTED]]
>> | Sent: Friday, January 31, 2003 9:34 AM
>> | To: [EMAIL PROTECTED]
>> | Subject: one desing question, Revisited
>> |
>> | Hi,
>> |
>> | When i was thinking about my problem, I think what
>> i
>> | want to do in multiple inhereteance
>> | I want to define a class called CommonFunctions ,
>> this
>> | call will have methods which are common, (As name
>> | suggest)
>> | now i have to do some thing like
>> | public class MyAction extends Action,
>> CommonFuntions
>> |
>> | and public class MyDisptachAction extends
>> | DispatchAction, CommonFuntions
>> |
>> | By doing this i will be able to access all the
>> methods
>> | in the class which sybclasses MyAction or
>> | MyDispatchAction
>> | I know the code above is not possible to do, but i
>> | want to do some thing like that..
>> | So what are the ways of achieving it
>> |
>> | =
>> | A$HI$H
>> |
>> | __
>> | Do you Yahoo!?
>> | Yahoo! Mail Plus - Powerful. Affordable. Sign up
>> now.
>> | http://mailplus.yahoo.com
>> |
>> |
>>
>-
>> | To unsubscribe, e-mail:
>> [EMAIL PROTECTED]
>> | For additional commands, e-mail:
>> [EMAIL PROTECTED]
>>
>>
>>
>-
>> To unsubscribe, e-mail:
>> [EMAIL PROTECTED]
>> For additional commands, e-mail:
>> [EMAIL PROTECTED]
>>
>
>
>=
>A$HI$H
>
>__
>Do you Yahoo!?
>Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
>http://mailplus.yahoo.com
>
>-
>To unsubscribe, e-mail:
>[EMAIL PROTECTED]
>For additional commands, e-mail:
>[EMAIL PROTECTED]
>


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: one desing question, Revisited

2003-01-31 Thread Malik Recoing
Friday, January 31, 2003 4:34 PM , Ashish Kulkarni
<[EMAIL PROTECTED]> a écrit :
> Hi,
>
> When i was thinking about my problem, I think what i
> want to do in multiple inhereteance
> I want to define a class called CommonFunctions , this
> call will have methods which are common, (As name
> suggest)
> now i have to do some thing like
> public class MyAction extends Action, CommonFuntions
>
> and public class MyDisptachAction extends
> DispatchAction, CommonFuntions
>
> By doing this i will be able to access all the methods
> in the class which sybclasses MyAction or
> MyDispatchAction
> I know the code above is not possible to do, but i
> want to do some thing like that..
> So what are the ways of achieving it
>

As mutiple inheritance is not possible, the only alternative is to delegate.

You can do it by using a CommonFunction attribute in an MyAbstractAction
classe. All the concrete sub-classes of it can then use this attribute as an
access to the common functions. This is only interesting if you
CommonFunction instances can be differents (differently configured) for each
MyAction.

An other common way to use utility Classes via delegation is by using it as
a Singleton (look for Sigleton desing pattern) or by making all methods
(functions) static if posssible.

Malik




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: one desing question, Revisited

2003-01-31 Thread Matthew Meyer
What you will want to is make your commonFunctions an 
interface. Next write a class to implement all of your 
common functions. Then Write your action extending Action 
and implementing your commonFunctions interface. Make your 
common funtions an instance variable of your action and 
then simply delegate all the commonFunction messages your 
action recieves to your commonFunction instance variable 
like so:
public  method(..., ) {
   return commonFuntionInstance.method(, );
}
Hope this helps you out...

Matt,


On Fri, 31 Jan 2003 07:45:22 -0800 (PST)
 Ashish Kulkarni <[EMAIL PROTECTED]> wrote:
Hi,
I know java does not allow multiple inheritance, but I
gave that example so i can make it clear what i want
to do,
So i want to find out a work around to achieve what i
have explanned in the example
Ashish
--- Jacob Hookom <[EMAIL PROTECTED]> wrote:

I'm going to save you from getting flamed java
does not allow multiple
inheritance.  You can only extend from a single
Object.

-Jacob

| -Original Message-
| From: Ashish Kulkarni
[mailto:[EMAIL PROTECTED]]
| Sent: Friday, January 31, 2003 9:34 AM
| To: [EMAIL PROTECTED]
| Subject: one desing question, Revisited
| 
| Hi,
| 
| When i was thinking about my problem, I think what
i
| want to do in multiple inhereteance
| I want to define a class called CommonFunctions ,
this
| call will have methods which are common, (As name
| suggest)
| now i have to do some thing like
| public class MyAction extends Action,
CommonFuntions
| 
| and public class MyDisptachAction extends
| DispatchAction, CommonFuntions
| 
| By doing this i will be able to access all the
methods
| in the class which sybclasses MyAction or
| MyDispatchAction
| I know the code above is not possible to do, but i
| want to do some thing like that..
| So what are the ways of achieving it
| 
| =
| A$HI$H
| 
| __
| Do you Yahoo!?
| Yahoo! Mail Plus - Powerful. Affordable. Sign up
now.
| http://mailplus.yahoo.com
| 
|

-

| To unsubscribe, e-mail:
[EMAIL PROTECTED]
| For additional commands, e-mail:
[EMAIL PROTECTED]




-

To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]




=
A$HI$H

__
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

-
To unsubscribe, e-mail: 
[EMAIL PROTECTED]
For additional commands, e-mail: 
[EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




RE: one desing question, Revisited

2003-01-31 Thread Cory Newey
Yeah, if you read his entire post, he says that he knows that multiple
inheritance isn't allowed in Java.  It looks to me like you'll have to
make CommonFunctions an interface.  If the methods in CommonFunctions
actually are identical for both MyAction and MyDispatchAction, you could
avoid having duplicate code in the two classes by deligating to a third
object that actually implements the methods.  What you would end up with
would look something like this:

MyAction extends Action implements CommonFunctions {
   private CommonFunctionsImpl common = new CommonFunctionsImpl();
   ... methods in CommonFunctions interface that just call the common
object above to the real work ...
}

MyDispatchAction extends DispatchAction implements CommonFunctions {
   private CommonFunctionsImpl common = new CommonFunctionsImpl();
   ... methods in CommonFunctions interface that just call the common
object above to the real work ...
}

CommonFunctionsImpl implements CommonFunctions {
   ... methods that do the real work ...
}

--Cory

Cory R. Newey
[EMAIL PROTECTED]
Senior Software Engineer
Novell, the leading provider of Net services software


>>> [EMAIL PROTECTED] 01/31/03 08:41AM >>>
I'm going to save you from getting flamed java does not allow
multiple
inheritance.  You can only extend from a single Object.

-Jacob

| -Original Message-
| From: Ashish Kulkarni [mailto:[EMAIL PROTECTED]] 
| Sent: Friday, January 31, 2003 9:34 AM
| To: [EMAIL PROTECTED] 
| Subject: one desing question, Revisited
| 
| Hi,
| 
| When i was thinking about my problem, I think what i
| want to do in multiple inhereteance
| I want to define a class called CommonFunctions , this
| call will have methods which are common, (As name
| suggest)
| now i have to do some thing like
| public class MyAction extends Action, CommonFuntions
| 
| and public class MyDisptachAction extends
| DispatchAction, CommonFuntions
| 
| By doing this i will be able to access all the methods
| in the class which sybclasses MyAction or
| MyDispatchAction
| I know the code above is not possible to do, but i
| want to do some thing like that..
| So what are the ways of achieving it
| 
| =
| A$HI$H
| 
| __
| Do you Yahoo!?
| Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
| http://mailplus.yahoo.com 
| 
|
-
| To unsubscribe, e-mail: [EMAIL PROTECTED] 
| For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED] 
For additional commands, e-mail: [EMAIL PROTECTED] 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




RE: one desing question, Revisited

2003-01-31 Thread Ashish Kulkarni
Hi,
I know java does not allow multiple inheritance, but I
gave that example so i can make it clear what i want
to do,
So i want to find out a work around to achieve what i
have explanned in the example
Ashish
--- Jacob Hookom <[EMAIL PROTECTED]> wrote:
> I'm going to save you from getting flamed java
> does not allow multiple
> inheritance.  You can only extend from a single
> Object.
> 
> -Jacob
> 
> | -Original Message-
> | From: Ashish Kulkarni
> [mailto:[EMAIL PROTECTED]]
> | Sent: Friday, January 31, 2003 9:34 AM
> | To: [EMAIL PROTECTED]
> | Subject: one desing question, Revisited
> | 
> | Hi,
> | 
> | When i was thinking about my problem, I think what
> i
> | want to do in multiple inhereteance
> | I want to define a class called CommonFunctions ,
> this
> | call will have methods which are common, (As name
> | suggest)
> | now i have to do some thing like
> | public class MyAction extends Action,
> CommonFuntions
> | 
> | and public class MyDisptachAction extends
> | DispatchAction, CommonFuntions
> | 
> | By doing this i will be able to access all the
> methods
> | in the class which sybclasses MyAction or
> | MyDispatchAction
> | I know the code above is not possible to do, but i
> | want to do some thing like that..
> | So what are the ways of achieving it
> | 
> | =
> | A$HI$H
> | 
> | __
> | Do you Yahoo!?
> | Yahoo! Mail Plus - Powerful. Affordable. Sign up
> now.
> | http://mailplus.yahoo.com
> | 
> |
>
-
> | To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> | For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 
>
-
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 


=
A$HI$H

__
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




RE: one desing question, Revisited

2003-01-31 Thread Jacob Hookom
I'm going to save you from getting flamed java does not allow multiple
inheritance.  You can only extend from a single Object.

-Jacob

| -Original Message-
| From: Ashish Kulkarni [mailto:[EMAIL PROTECTED]]
| Sent: Friday, January 31, 2003 9:34 AM
| To: [EMAIL PROTECTED]
| Subject: one desing question, Revisited
| 
| Hi,
| 
| When i was thinking about my problem, I think what i
| want to do in multiple inhereteance
| I want to define a class called CommonFunctions , this
| call will have methods which are common, (As name
| suggest)
| now i have to do some thing like
| public class MyAction extends Action, CommonFuntions
| 
| and public class MyDisptachAction extends
| DispatchAction, CommonFuntions
| 
| By doing this i will be able to access all the methods
| in the class which sybclasses MyAction or
| MyDispatchAction
| I know the code above is not possible to do, but i
| want to do some thing like that..
| So what are the ways of achieving it
| 
| =
| A$HI$H
| 
| __
| Do you Yahoo!?
| Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
| http://mailplus.yahoo.com
| 
| -
| To unsubscribe, e-mail: [EMAIL PROTECTED]
| For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]