# Ice::ObjectFactory

## Overview

### local interface ObjectFactory

A factory for objects. Object factories are used in several places, for example, when receiving "objects by value" and when Freeze restores a persistent object. Object factories must be implemented by the application writer, and registered with the communicator.

#### Used By

Communicator::addObjectFactory
Communicator::findObjectFactory

#### See Also

::Freeze

## Operations

### Object create(string type)

Create a new object for a given object type. The type is the absolute Slice type id, i.e., the id relative to the unnamed top-level Slice module. For example, the absolute Slice type id for interfaces of type `Bar` in the module `Foo` is `::Foo::Bar`.

The leading "`::`" is required.

#### Parameters

type
  The object type.

#### Return Value

The object created for the given type, or nil if the factory is unable to create the object.

### void destroy()

Called when the factory is removed from the communicator, or if the communicator is destroyed.

#### See Also

Communicator::destroy