10

I am very eager to learn in depth OOP concepts and most importantly how they can be applied in "real life". So far, I have read many references and many tutorials online but they all lack something: They do not provide a way to fully understand how object oriented programming can be truly used. In fact, it seems that most tutorial focus on OOP "syntax" as opposed to "the art of OOP design". Since OOP is a set of concept/idea/best practice in thinking about a problem and tackling that problem in a way to allow a better productivity I really want more. I want something to help me think as an "OOP designer" and not an "OOP programmer". Can someone provide with me a resource (preferably an online resource) that actually provides a non trivial example on how to apply OOP? Although I am aware that OOP is language agnostic, I would prefer examples in C#.

Jonh Smith
  • 121
  • 1
  • 4
  • The importance of OO for design (as opposed to OOP) has been overestimated for years, that's might be the cause why the available resources won't meet your expectations. – Doc Brown Oct 13 '11 at 06:02
  • Hey Doc Brown, if you believe that OO is of lesser importance for design, what design methodology do you recommend / prefer ? – Antonio2011a Oct 13 '11 at 06:12
  • @Antonio2011a: Don't get me wrong, I don't say I won't use OOD, I just say I won't use it for everything. For a lot of things I prefer to model a data flow oriented view, using elements of "Flow Design", http://geekswithblogs.net/theArchitectsNapkin/archive/2011/03/19/flow-design-cheat-sheet-ndash-part-i-notation.aspx – Doc Brown Oct 13 '11 at 06:44

5 Answers5

3

IMHO the best resources are not available online. This former SO post contains pointers to some very good books:

https://stackoverflow.com/questions/3315633/which-is-the-best-book-to-learn-and-implement-design-patterns-using-c

Community
  • 1
  • 1
Doc Brown
  • 19,739
  • 7
  • 52
  • 88
  • There are some good suggestions at that link, but while there is an overlap between Patterns and OOD, are they really the same thing? – Antonio2011a Oct 13 '11 at 06:16
  • @Antonio2011a: well, there is no really strict definition of what "OOD" is and what is not. It depends much on what layer of abstraction you want to model. The GoF patterns are clearly a design thing using OO elements, which is on an abstraction level just one step higher than the code. – Doc Brown Oct 13 '11 at 06:51
2

Check the following books;

  1. Object-Oriented Analysis and Design with Applications
  2. Code Complete
  3. Design Patterns Explained

Not sure online versions avialable

Ratha
  • 9,434
  • 17
  • 85
  • 163
2

Good question. I've read many of the books that are suggested here, but I still struggle sometimes with good object design. In fact I've become somewhat disillusioned with Object Design. I think two books that are worth reading are

Robert C. Martin - Clean Code Robert C. Martin - Agile Principles, Patterns, and Practices in C# (but be aware that the C# code is a bit outdated)

Antonio2011a
  • 161
  • 1
  • 7
2

see this question and answers: What is the single most influential book every programmer should read? there really great books mentioned there(not just OOP).

Community
  • 1
  • 1
0x49D1
  • 8,505
  • 11
  • 76
  • 127