Как мне создать чистый слизень, обращенный к пользователю, из объекта? - PullRequest
1 голос
/ 13 сентября 2011

Учитывая тот факт, что я использую ранее существующее решение для комментариев / обсуждений, которое использует уникальную строку в качестве идентификатора потока, мне нужно создать слаг для пользователя из произвольного объекта для идентификатора потока, который соответствует следующим ограничениям :

  1. Short
  2. "Довольно"
  3. удобочитаемый
  4. Не раскрывает внутренние органы
  5. Уникальный для экземпляра объекта

Я думал об использовании {FQCN}-{id}, но это нарушает # 4 и, когда кодируется в сети, # 2. Я также рассматривал хэш md5 того же самого, но это нарушает # 3 (и потенциально # 1, в зависимости от определения «short»).

Так как у объектов нет стандартизированного API (например, нет гарантии, что у них у всех будет метод getTitle(), например), я в недоумении, как придумать слаг, который соответствует этим ограничениям. Как бы вы пошли на его создание, и если это невозможно, какой формат вы бы использовали, который нарушает как можно меньше ограничений?

1 Ответ

1 голос
/ 25 февраля 2012

Похоже, если вы используете произвольные объекты, вы захотите, чтобы объекты решали сами. Вы хотели бы иметь базовый класс или, возможно, интерфейс, который определил бы, что объекты являются «медлительными». Все, для чего у вас будут слизни, должно было бы реализовать это.

Таким образом, у вас будет

getObjectFromSlug = function () или function getObjectFromSlug ()

и

getSlug = function () или function getSlug ()

в интерфейсе, и каждый из "медлительных" объектов должен был бы реализовать это самостоятельно. Единственная проблема заключается в том, что вам придется вручную требовать, чтобы они были уникальными сами по себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...