|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Class Summary | |
| Function | An arbitrary function or procedure. |
| ObjectToBoolean | Object->boolean function. |
| ObjectToObject | Object->Object function. |
| ObjectToObjectToBoolean | Object->Object->boolean function. |
| ObjectToObjectToObject | Object->Object->Object function. |
| ObjectToObjectToVoid | Object->Object->void procedure. |
| ObjectToVoid | Object->void procedure. |
| VoidToObject | void->Object procedure. |
| VoidToVoid | void->void procedure. |
Framework for functional objects.
Representing functions using more complex objects is an instance of the Abstraction Inversion-antipattern [Abstraction Inversion (http://c2.com/cgi/wiki?AbstractionInversion)]. [Note that the antipattern here applies to the design of the Java language and also to the idea that we should build functional abstractions on top of object-oriented abstractions rather than vice versa [Kühne1999].] However, simple functions, rather than more specialized Strategy [Gamma1995] objects, are quite often appropriate for a design and because some OO languages, such as Java, do not provide first class functions, it makes sense to emulate them using the more complex class mechanism.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||