Skip to content, Skip to search

Changes

SciJava Common

36 bytes removed, 13:53, 24 September 2015
Use wikipedia wiki links
{{ImageJ1
| Whereas [[ImageJ1]] is a [https[wikipedia://en.wikipedia.org/wiki/Singleton_pattern Singleton pattern|singleton]], with static methods to access much of its functionality, [[ImageJ2]] encapsulates its program state in the application context, allowing multiple simultaneous such contexts in the same JVM.
}}
ImageJ encapsulates its various parts as separate "services" that provide related state functionality and track related program state. An instance of the {{Javadoc | package = net/imagej | class = ImageJ}} class is nothing more than a collection of these services; this instance is referred to as the "application gateway." Services are defined as interfaces, with concrete implementations as plugins. This design provides [http://c2.com/cgi/wiki?SoftwareSeam seams] in the right places so that behavior at every level can be customized and overridden.
* '''{{Javadoc | package = org/scijava/app | class = AppService}}''' - Tracks software applications (SCIFIO, ImageJ, etc.) present in the context.
* '''{{Javadoc | package = org/scijava/display | class = DisplayService}}''' - Tracks available displays, as well as the active display, and provides the means to create new displays to visualize data.
* '''{{Javadoc | package = org/scijava/event | class = EventService}}''' - Publishes events to the [https[wikipedia://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern 93subscribe pattern|event bus]], and allows interested parties to subscribe to them. The service provides the central means of communication between various parts of the codebase.
* '''{{Javadoc | package = org/scijava/io | class = IOService}}''' - General tools for opening and saving data within the context.
* '''{{Javadoc | package = org/scijava/menu | class = MenuService}}''' - Builds the application menu structure.
Bureaucrat, emailconfirmed, incoming, administrator, uploaders
12,233
edits