SCOOP stands for Simple Composite Object Oriented Programming
This is an experimental implementation of a simple COP framework initiated after looking at AOP and Qi4j. Implementation is based on CgLib which allows to customize method invokation dispatching to corresponding mixin.
Essentially, it takes the concepts from Aspect Oriented Programming to the extreme: one implements each aspect as a separate object and then treat them as mixins which blend together into a meaningful composite.
For a more complete explanation see Qi4j Background
- Interface based
- Mixin composition: attempt to find the most efficient combinaisons of mixins to satisfy all interfaces required
- Interceptor based: all methods call is transformed into a full interceptor based chain before invoking the implementing method (see Using Java EE Interceptors and Strut2 Interceptor)
- Main idea is to transform a simple method call to a complete message passing channel before the method invoked (see EIP messaging patterns)
- To learn about the internals and problematic COP raises and can solves
- To have a well known (since home made and really small) framework to efficiently twist it, e.g. be able to transform any compatible call into an asynchronous one, or modify a method call workflow easily
- Qi4j is definitively the framework to look at: Qi4j
- Class OP vs Object OP
- Aspect Oriented Programming
- Concept-Oriented Programming