鉴于我正在使用预先存在的注释/讨论解决方案,该解决方案使用唯一字符串作为线程ID,我需要从适合以下约束的线程ID的任意对象创建面向用户的slug :
我考虑使用{FQCN}-{id}
,但它违反#4,并且在网络编码时,#2。我也考虑过相同的md5哈希,但违反#3(可能是#1,取决于“短”的定义)。
由于对象没有标准化的API(例如,不能保证它们都有getTitle()
方法,例如),我不知道如何提出一个符合这些限制的slu ..您将如何创建一个,如果不可能,您将使用哪种格式违反尽可能少的约束?
答案 0 :(得分:1)
听起来好像你正在使用任意对象,你会想让对象自己决定。你想要一个基类或者一个接口来定义对象是“可缓慢的”。你要用的所有东西都需要实现它。
这样,你就有了
getObjectFromSlug = function ()
或function getObjectFromSlug ()
和
getSlug = function ()
或function getSlug ()
,每个“可缓慢”对象都需要自己实现。唯一的问题是你必须手动要求它们本身是唯一的。