User DocumentationOne minute descriptionTwo minute tutorial Five minute introduction Advanced Topics FAQ Container Components Terminology Mock Objects Inversion of Control Types PatternsInversion of ControlDependency Injection Constructor Injection Setter Injection Interface-Impl Separation Lifecycle Antipatterns Developer DocumentationHow To ContributeRelative Volunteering Release Process Project InformationSloganMailing lists Source Repositories Open Issues Blog entries Statistics Team Sister Projects TShirts MiscellaneousDifferentiatorsNirvana Full Sitemap |
TerminologyAuthors: Paul Hammant, Others Also known as PicosaurusTermsThese can be arrived at from the definitions.
Object / InstanceAn "object" as per the Java Language Specification. ClassA "class" as per the Java Language Specification. POJO (Plain Old Java Object)An object that does not use nor support any other kind of component/bean specification. It does not implement any lifecycle or marker interfaces, it does not provide any kind of metadata. Will usually follow the minimum requirements for classifying it as a JavaBean though. Javabean / BeanAn object that is a "valid java bean" according to the JavaBean Specification. That is, an object that has a public default constructor, and that supports setting and/or retrieving all or a part of its state using so-called setter and getter methods, which are named getXXX(), setXXX() or isXXX(), where XXX identifies part of its state. The JavaBean specification defines a metadata framework, an event framework, and some other things which are less relevant in this context. A JavaBean may represent both data and functionality. Data Object / Entity Bean / Data Bean / PODOAn object that only represents data, but contains no 'logic' or any kind of other functionality (except for perhaps some utility methods that transform the data into some other form, like getXXXasString(). Will often override equals() and hashCode(); will often be serializable. Does not create threads, does not keep references to non-data objects. Component / ServiceAn object that only represents functionality. It is a "unit of logic", that can "do work". In a well-designed application, the work that a component can do is specified in a work interface. Will usually not override equals() or hashCode(). Passive ComponentA component that does not use threads (not even indirectly). Active ComponentA component that uses threads (possibly indirectly through the use of a Thread Pool or Executor component). Contextualized Dependancy Lookup ComponentA component that has a public default constructor and that usually has its state set up and/or modified through the use of some kind of framework-specific mechanism. Setter Injection ComponentA component that has a public default constructor and that has its state set up through the use of setter methods. Constructor Injection ComponentA component that has one or more public constructors and that has its state set up through the arguments provided in one of these constructors. Constructor/Setter Dependency Injection ComponentA component that has a public constructor and that has its state set up through the arguments provided in that constructor and through the use of setter methods. IoC ComponentA component that does not implement any kind of logic to set up its own state, but completely depends on other parties to provide that state to it. Non-IoC ComponentA component that implements some kind of logic to set up its own state. Examples: a component that reads an XML file; a component that looks up dependencies in JNDI; a component that queries system properties. Domain-Specific ObjectAn object that implements a specification that is less generic than Java itself in its applicability. Example: EJB, Servlets. Spring-supported ObjectAn object that can be 'natively' used in the Spring Framework. Any JavaBean (with some extensions to that specification like "initialization completion" support), any object with a public default constructor that does not require any method calls to set up its state. PicoContainer-supported ObjectAn object that can be 'natively' used in PicoContainer. Any Type-3 component. XWork-supported ObjectAn object that can be 'natively' used in the XWork Framework. Any object with a public default constructor that has its state set up through XXXAware interfaces. Fail FastAn object that fails fast is an object that indicates as early as possible if it is in an inconsistent or unusable state (by throwing a fatal exception). The fastest possible way to FailFast is to do so during instantiation. This can be handled in an elegant way if the class is a GoodCitizen.PicoComponentA component designed to work in a PicoContainer.PicoCompatibleA component compatible with PicoContainer. Is likely to be a PicoComponent.Pico PoweredA product is said to be "PicoPowered" if it embeds or uses PicoContainer internally.Jovial TermsPicoificationThe act of refactoring a codebase to turn existing components into Pico compatible ones.PicosicateThe art of dithering with respect to a pending Picoification.PicantThe often false declaration that a component cannot be turned into a pico component. Leaves an unsavoury taste in mouth.PicographyA retrospective article by a developer on the subject of Picoification of a set of components to the PicoComponent design. Usually a tool that the developer is fond of. Usually to a blog.PiconateSee Picoification.PicoscateInept Picoification. Code being messy as a result.PicofileA developer who rapidly believes PicoContainer to be the greatest thing ever.PicosistanceThe movement against Picoification and PicoContainer. This divided into two camps (who hate each other). There is the StaticIsKing group (many of whom hate each other as well as themselves). There are also fellow IoC believers who hold a candle for alternate IoC designs. Usually Setter Injector or Contextualized Lookup of which there are many. We have not identified any other groups in the Contructor Injector IoC space - could be something to do with Picovelation.PicovelationThe realisation that there is no more simple or elemental IoC design for component composition than PicoContainer. |