I agree there are performance issues to consider and weigh what someone would expect, but I think these API decisions should be driven by use-examples (use cases, or whatever modeling techniques you want). Most of these discussion on the mailet API seem focused on programming styles than *how* this API will be used. -- Serge Knystautas Loki Technologies - Unstoppable Websites http://www.lokitech.com/
Danny Angus wrote: >>I'll hope that you have a simple API like : >> >> MailAction mailRequest(MailItem mailItem) throw MailRequestException; > > > 's funny you should say that, 'cos I'd like to hear your opinion on this.. > > two alternatives; > > a) Mail service(Mail mail) throws MailetException; > > and > > b) void service(Mail mail) throws MailetException; > > the difference being that a returns a Mail which continues through the > processing, _as__if_ the Mail had been passed by value, and b alters the > existing message as if it had been passed by refrence (which of course it > has). > > Now I did a lot of C programming, where the refrence approach was the > conventional one, but in Java the by-value analogy seems to be the expected > way. > > the argument in favour of b is that it is more efficient, and actually > constrains processors to acting in a linear fashion, by not allowing new > Mails to be returned. > > Alternatively it might be argued (perhaps by me ;-) that a is the more > expected/acceptable signature and that anyway there is nothing stopping a > mailet from replacing the value of Mail mail with a new Mail anyway. > > d. -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
