---
name: "Class::MixinFactory::Factory"
section: "3pm"
platform: "linux"
package: "libclass-mixinfactory-perl"
version: "0.92-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Class::MixinFactory::Factory"
---

# Class::MixinFactory::Factory(3pm)

Class Factory with Selection of Mixins

## NAME

Class::MixinFactory::Factory - Class Factory with Selection of Mixins

## SYNOPSIS

```
  use Class::MixinFactory::Factory;
  my $factory = Class::MixinFactory::Factory->new();

  $factory->base_class( "MyClass");
  $factory->mixin_prefix( "MyMixins" );
  $factory->mixed_prefix( "MyClasses" );
  my $class = $factory->class( @mixins );
```

## DESCRIPTION

A mixin factory generates new classes at run-time which inherit from each of several classes.

## PUBLIC METHODS

- **new()**

  ```
    $factory_class->new() : $factory
    $factory_class->new( %attributes ) : $factory
  ```

  Create a new factory object.

  May be passed a hash of attributes, with the key matching one of the supported accessor methods named below and the value containing the value to assign.

- **base\_class()**

  ```
    $factory->base_class() : $package_name
    $factory->base_class( $package_name )
  ```

  Required. Get or set the base class to be inherited from by all mixed classes.

- **mixin\_prefix()**

  ```
    $factory->mixin_prefix() : $package_name
    $factory->mixin_prefix( $package_name )
  ```

  Optional. Get or set a prefix to be placed before all mixin class names that don't contain a double-colon. Defaults to the name of the base class.

- **mixed\_prefix()**

  ```
    $factory->mixed_prefix() : $package_name
    $factory->mixed_prefix( $package_name )
  ```

  Optional. Get or set a prefix to be placed before all generated class names. Defaults to the name of the base class or the factory class followed by "::AUTO"

- **class()**

  ```
    $factory->class( @mixins ) : $package_name
  ```

  Find or generate a class combining the requested mixin classes.

## SEE ALSO

For a facade interface that facilitates access to this functionality, see Class::MixinFactory.

For distribution, installation, support, copyright and license  information, see Class::MixinFactory::ReadMe.
