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]