-
Notifications
You must be signed in to change notification settings - Fork 13
Summary of Features
brian428 edited this page Sep 7, 2014
·
4 revisions
Here is a high-level overview of the features provided by Deft JS:
- Provides class annotation-driven dependency injection.
- Maps dependencies by user-defined identifiers.
- Resolves dependencies by class instance, factory function or value.
- Supports singleton and prototype resolution of class instance and factory function dependencies.
- Offers eager and lazy instantiation of dependencies.
- Injects dependencies into Ext JS class configs and properties before the class constructor is executed.
Sencha has taken the concept of view controllers that was promoted in earlier versions of Deft JS and incorporated it into Ext JS 5. Benefits of using view controllers and Deft JS include:
- Provides class annotation-driven association between a given view and its ViewController.
- Clarifies the role of the controller - i.e. controlling a view and delegating work to injected business services (service classes, Stores, etc.). (Martin Fowler's description of a Passive View using a controller.)
- Supports multiple independent instances of a given view, each with their own ViewController instance.
- Reduces memory usage by automatically creating and destroying view controllers in tandem with their associated views.
- Integrates with the view destruction lifecycle to allow the view controller to potentially cancel removal and destruction.
- Simplifies clean-up by automatically removing view and view component references and event listeners.
- Provides an elegant way to represent a ‘future value’ resulting from an asynchronous operation.
- Offers a consistent, readable API for registering success, failure, cancellation or progress callbacks.
- Allows chaining of transformation and processing of future values.
- Simplifies processing of a set of future values via utility functions including all(), any(), map() and reduce().
- Implements the CommonJS Promises/A specification.