I looked at this book, "Object-oriented Design in Java" by Stephen Gilbert & Bill McGardy. I felt it is ok for beginner in OO design in Java. Any other good OOPs design books using Java. Appreciate your input. Thanks
Just this last weekend I made it through the end of "Refactoring". I found that I got the most material from the beginning of the book. Then I was given some light brain food in the middle (the list of refactorings). I only browsed the end - it was written by a bunch of other guys and didn't feel like the sort of food I was looking for. www.javaranch.com/books.html has more info.
Good OO design books are pretty hard to come by, whatever language these use for their examples (if they use one). The following are the best I have found: Introductory: Designing Object-Oriented Software by Wirfs-Brock, et al General Design: Designing Object-Oriented C++ Applications Using the Booch Method by Robert Martin Patterns: Design Patterns by Gamma, et al Rules of Thumb: Object-Oriented Design Heristics by Arthur Riel Refactoring is a great book by I would not consider it a design book like the others I have listed. I see it as a programming book, maybe a detailed design book.
The only reason for time is so that everything doesn't happen all at once.
- Buckaroo Banzai
You can also try out 'Java Design :Building Better Apps & Applets' by Peter Coad & M. Mayfield. This covers inheritance vs composition , variuos forms of Notifications (Listener,Observer etc...).Also has a good description on Interfaces.
hello, I have been studing for scjp2 and also doing a java project at work and have found that just scjp2 would be enough, as the fundas and implementation of oops are very important, can anyone explain me what is re-factoring and is it another name for oops and which is the best book for oops. thanks.
The sub title of the refactoring book is "Improving the design of existing code". Basically it's looking at a program that is not as elegant as it could be and then taking the steps needed to make it more elegant.
Paul, but my doubt is refactoring same as oops and is there any book specific for oops in java. I am thinkning to buying oops book by "gamma" what are you suggestions on this books and any other book you would suggest on oops, the cost of the refactoring book is Rs 1300($26). thanks.
Thank you, Paul and Roseannne. I have still kept my self unclear. I have a task at hand i.e creating a caroom game sort of a pool game, when i approached the problem I came up with only one class and became very confused with the code as it was as procedural code. What I would like to know is there a book where It explain how to approch a problem and give clear solution in oops. I have also decompiled a pool games from jars.com, the code is so beautiful with everything so very generalised that has got me to think as to have should I approach a problem and compose It in oops. thanks
The key is to think of the objects that will be involved: balls, holes, table, cues, etc. I can see the need for an OO design book here. I've just been doing it so long, it seems obvious to me, but I'm struggling to explain it. [This message has been edited by Paul Wheaton (edited August 17, 2000).]
thanks paul, a firend of mine has suggested this book by grady booch, but this is related to c++ oops should I go for this book, I am sorry to be so persitant because I just cant think how to make every object interact please paul suggest a good oops, especially in java. thanks a lot for being patient. thanks again.
posted 20 years ago
Objects are things. Start your analysis by listing the things that make up the domain of your problem. Just list them for now, don't give them behaviors or attributes (methods and fields) yet. Now work thru the important scenarios in which your things interact in a real world sense (not in a programming sense). You'll likely refine your thing list as you do this. Don't get too detailed. Once you're happy with your interactions, use them to tell you what operations your things must support. Go back and forth a few times, recasting your scenarios in terms of your operations until you've got stable definitions for the operations. OK, you're done analyzing (for now). Design is where you start thinking about your program (NOT your code). Start by bringing in the classes (things) you came up with in analysis. Redo your scenarios, this time from the perspective of the user of your eventual program. Think about data structures and algorithms. Add classes that support program operations. Keep going back and forth between your dynamic (scenario) and static (class hierarchy / containment) models until you've got return and argument types for each method, and you know the sequence of method calls for each scenario. As you refine your static model, look for opportunities to use inheritance and containment to add elegance. (Look for commonalities between classes, and use inheritance and / or delegation to represent them.) Here's where a knowledge of design patterns comes into play. OK, you've got a design with a class hierarchy, public and protected methods for each class, and some idea of the logic each method must implement. Start coding it. Pick a reasonable path through the class hierarchy, one that allows you to test small pieces often. As you proceed through these steps, you'll likely find errors and shortcomings in your work products from the previous step. Don't hesitate to step back, BUT ALWAYS BE AWARE WHICH STEP YOU'RE DOING. Don't design in your code editor. If you're doing analysis, don't even think about the data structures. Finally, don't wait to "totally complete" a work product before proceeding to the next phase, or you'll find yourself in analysis paralysis.
The Booch book is very good but you get a very big dose of the Booch Methodology which is overkill for most small projects. The best series of books i have seen are the yourden OO books: OO Analysis - Coad, Yourden OO Design - Coad, Yourden OO Programming - Coad, Nicola The OOP books uses Smalltalk and C++, but the concepts still apply well and the steps are small, so you could draw some direct conversions to Java.
"Thinking in Patterns with Java", written by Bruce Eckel, is another excellent book. I just love it. I've read the OO Patterns by the gang before. TIPJ is a good book to compensate the OO since it has enough examples in Java. I had this book free from http://members.spree.com/education/developergrp/FreeBooks.HTM
Patterns in Java, Vol. 1:A Catalog of Reusable Design Patterns Illustrated with UML Author: Grand, Mark This is a pretty good book. Our main concern was the Command Pattern so I really didn't *read* the whole thing. [This message has been edited by Barb Stanny (edited October 11, 2000).]
i agree with john weitherbie. Good oops books are very hard to come by . He has given very nice list of very good oops books.
Basically , books written by smalltalk programmers like ward cunningham , kent beck ( xp fame ) are very good books. Since , smalltalk is considered as the purest oops language & most of the features of java are coming from smalltalk ( mvc paatern , first pattern given in gang of four book is from smallalk only.) nobody has spoken about the crc cards. they are one of the best techniques to learn oops. once again , epic book on this subject is by Kent Beck & Ward Cunnigham ( using crc crads ) . some intorduction is given in martin fowler's UML Distilled regarding crc cards. Another smalltalk guru , Timothy Budd has written very good book on oops. one who doesn't know anything about oops , can start with thuis book. afterwards , one on the best books on oops , which i think is not mentioed in this discussion forum is by Miller Page-jones. this is a must read for oops lovers. I tend to disagree with Preeti Agrawal regarding book of Jacbson. Nodoubt it is the best starting book for use case analysis. but , it is not oops book. it is software engg. book with oops flavour in it. The book is written in 1993( i think so. if it is wrong ,please correct me.) now ,after 7 yrs. lot of changes have taken place in this area. i t slightly outdated. Mr. Jackbsons's new book considering business modelling into a/c is very good book. Refactoring by marin fowler shall not be considred as oops book. Refactoring is a new methodology , whose purpose is to improve on the existing code , which is already constrcuted. once , you are having thoroug knowledge of oops then you will be in a position to apply the things mentioed in the book. basically , he has treated java in greater detail in this book. but, there are books on smalltalk refactoring , from where mkartin fowler has taken the inspiration. People have developed the smalltalk browsers to refactor the code. somebody should do it for java. Books mentioned by Steve Fahlbusch are excellent ones. OO Analysis - Coad, Yourden OO Design - Coad, Yourden OO Programming - Coad, Nicola Steve can you please tell me from where you got these books. In, india they are very difficult to get. can u tell me some resource. I desparately need those books. ED Yourdon is one of the best oops authors. His book on Structured Programming Written way back in 1978 is one of the best resources. another good book is Object Technology: A Manager's Guide by David A. Taylor Since , we are discussing about oops books , the design pattern books , refactoring books shall not be discussed as they are advanced topics , which can be touched upon if u have solid knoledge of oops. bye.
shailesh, Of the three books: OOA and OOD are available on Amazon (easiest way to find is to go Ed Yourdon's site http://www.yourdon.com/ go object oriented books and follow link at Coad ....Object Oriented Design. You can find the OOA book from there. The OOP book is out of print - but since I used it when I was teachning in San Diego, and since I know of a few other professors that used the book, I would expect that the used book link should be able to find a copy. Hope this helps, steve
[This message has been edited by Steve Fahlbusch (edited October 12, 2000).]
I like Mark Grand's book "Patterns in Java, Volume 1, A Catalog of Reusable Design Patterns Illustrated with UML". I feel it does a nice job in presenting the characteristics of a design pattern, providing the accompanying UML representation, and Java source implementation.
posted 20 years ago
Hi ,Steve Fahlbusch . thank you for your prompt reply. It is very , very nice to hear from the professor participating in the forum. I hope the list given by me is really worthwhile. You must have taught for quite a long time. I hope you will be great help to me in the future through this forum.
Regarding the books that you have metioned , i know that they are available on amazon.com. But , the delivery time is high to india. At the same time the cost of the book becomes hefty , as it is in dollars plus there are hugh shipping expenses. right now I can not buy them at such high cost in India. Can you tell me the other resource who an help me out ? Some students who have used them & they don't want the book now.
sorry to bother you. Bye.
If you like strawberry rhubarb pie, try blueberry rhubarb (bluebarb) pie. And try this tiny ad: