16

I was reading this paper from Apple:

http://developer.apple.com/library/mac/documentation/cocoa/conceptual/OOP_ObjC/OOP_ObjC.pdf

where it talks about OOP which I never heard before. I graduated in computer science around 1991, before OOP becoming popular, so the use of OOP was merely defining some classes, and then calling the methods, that's it. Objects didn't interact with each other -- everything was done in a main function that calls the various objects' methods.

Until I read the paper above, which talks about Interface, dynamic typing, dynamic binding, that an object can send another object a message, even before the second object is invented -- only the "interface", or the message, needs to be well defined. The second object can have unknown data type as of right now, to be invented in the future, but all it needs to do is to understand the "message".

So this way, each object interacts with one another, and each object may have a list of "outlets" which are the relationship it has with the outside world, and the object will interact with the outlets by sending them messages, and those objects, when getting a message, can in turn send back a messages to the sender. (send a message to an object = call the object's method).

I think this sort of opened my eye for OOP, much more than even the Design Pattern book by the Gang of Four. The Apple paper didn't cite any source, but I wonder it might follow some methodology from a book? Does any OOP book give a good, solid foundation in OOP which is what the Apple paper is talking about?

nonopolarity
  • 146,324
  • 131
  • 460
  • 740

5 Answers5

17

Nice introduction to OOP is "Coffee maker" (and quite short).

I personally really enjoy reading "Object thinking".

Another interesting book is "Domain-Driven Design: Tackling Complexity in the Heart of Software".

Next in my to-read list is "Object Design: Roles, Responsibilities, and Collaborations".

Arnis Lapsa
  • 45,880
  • 29
  • 115
  • 195
  • Hi, I agree that Object Thinking by David West is really great book. It is "must-read" for every OO programmer. Have you found another interesting books which are similar to Object Thinking book? Thanks :) – Facedown Dec 25 '15 at 22:09
10

Try Elegant Objects (I'm the author). It is rather practical and, at the same time, pays a lot of attention to the theory. You must have some programming experience beforehand though.

enter image description here

yegor256
  • 102,010
  • 123
  • 446
  • 597
3

I am from .Net background and I am planning to read the following book to address this question.

Foundations of Object-Oriented Programming Using .NET 2.0 Patterns - Christian Gross

What I am finding interesting about this book is

  1. Use of generics
  2. Explaining patterns as a solution to a problem
LCJ
  • 22,196
  • 67
  • 260
  • 418
2

Smalltalk 80 The Language and its Implementation by Adele Goldberg and David Robson. Best OOP book ever. Also relevant is the Byte Magazine August 1981 issue.

Leandro Caniglia
  • 14,495
  • 4
  • 29
  • 51
2

Object orientation can easily get out of hand. For example, with increasing complexity, dependency management becomes burdensome if not done properly.

Thus, as a moderating set of literature, I'd recommend Uncle Bob's articles on the Principles of Object Oriented Design.

Dmitry Ledentsov
  • 3,620
  • 18
  • 28