Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Solving a non-trivial code duplication problem

If it turns out an OO technique isn't enough :), Ramnivas Laddad documented a good pattern called "Worker Object" that encapsulates this sort of anonymous inner class creation, in his case, creating a Runnable and launching a Thread with it.

dean

On Nov 14, 2007, at 8:53 AM, Eric Bodden wrote:

Why don't you just extract the method bodies into a body within A with
pure OO technique? To me your example does not look like a typical
situation that would require AOP.

Eric

On 14/11/2007, KimMens <kim.Mens@xxxxxxxxxxxx> wrote:

(How) can the following non-trivial code duplication problem be solved with
AspectJ (or with other advanced reflection techniques in Java)?

I am analysing a large program with the goal of migrating it to an
aspect-oriented solution. In that program I find many occurrences of the following implementation pattern. On the one hand, there is a method m,
implemented by a class A:

A :  public X m(...) {
        body_of_m_here
        }

On the other hand there is a method n implemented by the same class A which creates an anonymous inncer class of some other type, but where the method m
with exactly the same body is defined:

A : public Y n(...) {
        ...  some other code ...
        new Z(...) { public X m(...) { body_of_m_here } }
        ...  some other code ...
        }

Unfortunately I cannot divulge any details of the code but the pattern above appears at least 20 times for different pairs of methods in the code. What I want avoid is the code-duplication between each of those pairs of methods (the definition of the method m is repeated literally in 2 different places in the code). Can AspectJ or Java reflection offer a cleaner solution?
--
View this message in context: http://www.nabble.com/Solving-a-non- trivial-code-duplication-problem-tf4804421.html#a13744846
Sent from the AspectJ - users mailing list archive at Nabble.com.

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



--
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Dean Wampler, Ph.D.
dean at objectmentor.com
http://www.objectmentor.com
See also:
http://www.aspectprogramming.com  AOP advocacy site
http://aquarium.rubyforge.org     AOP for Ruby
http://www.contract4j.org         Design by Contract for Java5

I want my tombstone to say:
  Unknown Application Error in Dean Wampler.exe.
  Application Terminated.
      [Okay]        [Cancel]





Back to the top