我曾尝试搜索数据结构/算法书籍,这些书籍提供了Objective-C或其他支持关键字消息语法的语言的示例,但都无济于事。
我对此感兴趣的原因是因为我真的认为关键字语法可以帮助我理解代码的意图,我发现在使用典型的函数调用语法的语言中,我必须考虑更长的时间。
一个很好的例子是来自C语言的SplayTree实现的代码片段:
/* Continue down the tree. */
n = splay_tree_splay_helper (sp, key, next, node, parent);我知道从技术上讲,任何一段C代码都是有效的Objective-C,但我正在寻找一些利用像Objective-C这样的好对象模型来构造算法实现的东西,因为我相信结果代码更容易维护。
基本上,我正在寻找具有良好对象模型的任何东西,它允许非常描述性的关键字消息,无论它是Objective-C还是Smalltalk家族中的任何其他东西(虽然可能不太可能)。
发布于 2012-03-28 03:21:42
你为什么想要一本书?只需下载一个smalltalk environment并阅读整个实际源代码即可。打开系统浏览器,选择其中一个集合类别(类的集合)并开始浏览代码(额外的一列用于消息类别)。打开一个工作区,输入Object cmd-B (或ctrl-B,用于浏览),自己看看为什么发明了单一责任原则。使用层次结构、发送者和实现者在代码中导航。
发布于 2012-03-27 03:43:30
我想你找错东西了。
一本好的算法和数据结构的书会尽量不让你的时间浪费在难以阅读的源代码上。我所知道的大多数好书都花了大部分时间在高层次上解释事情,并且只以小片段的形式显示实际代码,这些小片段可以独立于所使用的语言和您对它的熟练程度来轻松理解。
有些人的splay trees实现是多么复杂,这并不重要。只要你知道splay树是什么,你就应该能够实现你自己的版本,而不用看太多的hit。
最后,一个好的对象模型和好的语法并不是万能的。许多数据结构使用的联合类型在OO风格中没有很好地实现,并且命名模式和语法是您应该能够很快适应的东西。
https://stackoverflow.com/questions/9877699
复制相似问题