我很感兴趣的是人们已经提出了什么策略来分离维护向后兼容性和应用程序主要代码所必需的所有狡猾的逻辑.换句话说,让您更接近于让代码看起来好像没有向后兼容性问题的策略,除了明显针对该任务的单独的隔离源文件.
例如,如果您的应用程序读取特定的文件格式,而不是一个巨大的鸣喇叭文件解析函数,您可以让您的代码首先迭代一个"怪癖"条目/对象列表,其中每个怪癖检查文件以查看它是否是文件它将适用于,如果是这样,则调用自己的解析逻辑而不是正常的案例逻辑.
Quirks是一个很好的策略,但是你必须做好工作,在你的应用程序的所有适当位置插入钩子进行怪癖检查,并且对于不同的怪癖类型等,检查看起来会有所不同.看起来应该是专用于此任务的样板的库.另一个问题是如何强制将怪癖作为通用钩子滥用到应用程序的任意块中.