我正在阅读Apple的这篇论文:
http://developer.apple.com/library/mac/documentation/cocoa/conceptual/OOP_ObjC/OOP_ObjC.pdf
它谈论我以前从未听过的OOP。我在1991年左右毕业于计算机科学,在OOP开始流行之前,因此OOP的使用只是定义了一些类,然后调用方法,就是这样。对象没有相互交互 - 一切都是在一个调用各种对象方法的主函数中完成的。
直到我阅读上面的论文,其中讨论了接口,动态类型,动态绑定,对象可以向另一个对象发送消息,甚至在第二个对象发明之前 - 只有“接口”或消息,需要明确定义。第二个对象现在可能有未知的数据类型,将来会被发明,但它需要做的只是理解“消息”。
这样,每个对象彼此交互,每个对象可能有一个“出口”列表,它是与外界的关系,对象将通过发送消息与出口进行交互,以及这些对象在收到消息时可以将消息发送回发送方。 (向对象发送消息=调用对象的方法)。
我认为这种对OOP的关注,远远超过了Gang of Four的设计模式书。 Apple论文没有引用任何消息来源,但我不知道它可能会遵循一本书中的一些方法吗? OOP书是否为OOP提供了良好,坚实的基础,这是苹果论文所讨论的内容?
答案 0 :(得分:14)
对OOP的精彩介绍是"Coffee maker"(而且很短)。
我个人非常喜欢阅读"Object thinking"。
另一本有趣的书是"Domain-Driven Design: Tackling Complexity in the Heart of Software"。
我的阅读列表中的下一个是"Object Design: Roles, Responsibilities, and Collaborations"。
答案 1 :(得分:8)
试试Elegant Objects(我是作者)。它非常实用,同时也非常注重理论。您必须事先获得一些编程经验。
答案 2 :(得分:3)
我来自.Net
背景,我打算阅读以下书籍来解决这个问题。
Foundations of Object-Oriented Programming Using .NET 2.0 Patterns - Christian Gross
我对这本书感兴趣的是
答案 3 :(得分:2)
面向对象很容易失控。例如,随着复杂性的增加,如果处理不当,依赖关系管理会变得很麻烦。
因此,作为一套适度的文献,我推荐Uncle Bob's articles关于面向对象设计的原则。
答案 4 :(得分:1)
Smalltalk 80 The Language and its Implementation。有史以来最好的OOP书。同样相关的是Byte Magazine August 1981 issue。