public static function factory (array $subfield)
    {
        if (!array_key_exists('code', $subfield)) {
            throw new InvalidArgumentException("Missing 'code' index in subfield array");
        }
        if (!array_key_exists('value', $subfield)) {
            throw new InvalidArgumentException("Missing 'value' index in subfield array");
        }
        return new Subfield($subfield['code'], $subfield['value']);
    }