Instead of using the constructor, it would be nice to have a factory method o the DrawerInterface : 

```php
interface DrawerInterface
{
    public static function create($resource);
}
```

so this code could be :  

```php
public function draw($drawer = null)
{
    if (null !== $drawer) {
        if (false === in_array(class_implements($drawer), array('Imagine\Drawer\DrawerInterface')) {
            throw new RuntimeException('...');
        }

        return $drawer::create($resource);
    }

    return new Drawer($resource);
}
```