The Object-Oriented Thought Process

Matt Weisfeld

Delivery time :
Country of origin: South Africa Dispatched within 7 working days depending on supplier
Ships from :

eB3 020
Discovery Miles:
3 020

Free Delivery

Long description

Summary A concise and readable primer, The Object-Oriented Thought Process lays the foundation of object-oriented concepts and then explains how various object technologies are used. Early chapters introduce object-oriented concepts, then cover abstraction, public and private classes, reusing code, and developing frameworks. Later chapters cover building objects that work with databases and distributed systems (including EJBs, .NET, web services and more). The author's years of programming, teaching, and writing have given him a flair for presenting highly technical topics in a clear and interesting manner. He is able to blend abstract concepts with ingenious examples and clear illustrations to quickly teach powerful OOP techniques. The code examples are written in Java, UML, VB.NET and C#, but are designed in such a way that a reader with no previous experience with any one particular language will still understand them. The Object-Oriented Thought Process is a clear and accessible alternative to the often dry and overly dense books available on the market today.Author(s) Expertise Matt Weisfeld (Lyndhurst, OH) is a faculty member at Cuyahoga Community College in Information Technology department. He has more than 20 years of experience as a professional software developer, project manager and corporate trainer. Over the past several years Weisfeld has published many articles in major computer trade magazines and professional journals, including Dr. Dobbs Journal, Java Report, The C/C++ Users Journal, Software Development Magazine and the international journal Project Management. Audience The audience consists of active, working programmer

Product details

Matt Weisfeld
An Object Lesson Plan
Addison-Wesley Professional
3rd edition
Series Title:
Developer's Library
Width (mm):
Length (mm):
Table of Contents:
  • Introduction 1 1 Introduction to Object-Oriented Concepts 5 Procedural Versus OO Programming 6 Moving from Procedural to Object-Oriented Development 9 Procedural Programming 9 OO Programming 10 What Exactly Is an Object? 10 Object Data 10 Object Behaviors 11 What Exactly Is a Class? 14 Classes Are Object Templates 15 Attributes 17 Methods 17 Messages 17 Using UML to Model a Class Diagram 18 Encapsulation and Data Hiding 19 Interfaces 19 Implementations 20 A Real-World Example of the Interface/Implementation Paradigm 20 A Model of the Interface/Implementation Paradigm 21 Inheritance 22 Superclasses and Subclasses 23 Abstraction 23 Is-a Relationships 25 Polymorphism 25 Composition 28 Abstraction 29 Has-a Relationships 29 Conclusion 29 Example Code Used in This Chapter 30 2 How to Think in Terms of Objects 37 Knowing the Difference Between the Interface and the Implementation 38 The Interface 40 The Implementation 40 An Interface/Implementation Example 41 Using Abstract Thinking When Designing Interfaces 45 Giving the User the Minimal Interface Possible 47 Determining the Users 48 Object Behavior 48 Environmental Constraints 48 Identifying the Public Interfaces 49 Identifying the Implementation 50 Conclusion 50 References 51 3 Advanced Object-Oriented Concepts 53 Constructors 53 The Default Constructor 54 When Is a Constructor Called? 54 What's Inside a Constructor? 54 The Default Constructor 54 Using Multiple Constructors 55 The Design of Constructors 59 Error Handling 60 Ignoring the Problem 60 Checking for Problems and Aborting the Application 60 Checking for Problems and Attempting to Recover 61 Throwing an Exception 61 The Concept of Scope 63 Local Attributes 64 Object Attributes 65 Class Attributes 67 Operator Overloading 68 Multiple Inheritance 69 Object Operations 70 Conclusion 71 References 71 Example Code Used in This Chapter 72 4 The Anatomy of a Class 75 The Name of the Class 75 Comments 77 Attributes 77 Constructors 79 Accessors 80 Public Interface Methods 83 Private Implementation Methods 83 Conclusion 84 References 84 Example Code Used in This Chapter 84 5 Class Design Guidelines 87 Modeling Real World Systems 87 Identifying the Public Interfaces 88 The Minimum Public Interface 88 Hiding the Implementation 89 Designing Robust Constructors (and Perhaps Destructors) 89 Designing Error Handling into a Class 90 Documenting a Class and Using Comments 91 Building Objects with the Intent to Cooperate 91 Designing with Reuse in Mind 91 Documenting a Class and Using Comments 91 Designing with Extensibility in Mind 92 Making Names Descriptive 92 Abstracting Out Nonportable Code 93 Providing a Way to Copy and Compare Objects 93 Keeping the Scope as Small as Possible 94 A Class Should Be Responsible for Itself 95 Designing with Maintainability in Mind 96 Using Iteration 97 Testing the Interface 97 Using Object Persistence 99 Serializing and Marshaling Objects 100 Conclusion 100 References 101 Example Code Used in This Chapter 101 6 Designing with Objects 103 Design Guidelines 103 Performing the Proper Analysis 107 Developing a Statement of Work 107 Gathering the Requirements 107 Developing a Prototype of the User Interface 108 Identifying the Classes 108 Determining the Responsibilities of Each Class 108 Determining How the Classes Collaborate with Each Other 109 Creating a Class Model to Describe the System 109 Case Study: A Blackjack Example 109 Using CRC Cards 111 Identifying the Blackjack Classes 112 Identifying the Classes' Responsibilities 115 UML Use-Cases: Identifying the Collaborations 120 First Pass at CRC Cards 124 UML Class Diagrams: The Object Model 126 Prototyping the User Interface 127 Conclusion 127 References 128 7 Mastering Inheritance and Composition 129 Reusing Objects 129 Inheritance 130 Generalization and Specialization 133 Design Decisions 134 Composition 135 Representi

Customer reviews

Be the first to rate or write a review for this product


Your Recent History

Recently Viewed Items