Commons Functor: Function Objects for Java
A functor is a function that can be manipulated
as an object, or an object representing a single, generic
function.
Functors support and encourage a number of powerful programming
techniques including:
- programming in a functional style
- higher order functions
- internal iterators
- reuse and specialization through composition rather than inheritance and overloading
- generic "callback" or "extension point" APIs
- generic "filters" or predicate APIs
-
many "behavioral" design patterns, such as
Visitor, Strategy, Chain of Responsibility, etc.
See the examples for more information on some of
these techniques.
Status
- This code is in the commons sandbox
- The code is unreleased
- Methods and classes can and will appear and disappear without warning
- If you like the code and want to push it towards a release, join the mailing list!
Overview
Commons Functor defines three general types of
functors:
- predicates
- functors that return a boolean value
- functions
- functors that return an Object value
- procedures
- functors that don't return anything
The root
functor
package defines three signatures for each functor type--taking zero, one or
two Object arguments.
The
remaining packages
provide common functor implementations, adapters and utilities.
Releases
None. This is a sandbox component.