Object-Oriented Thought Process, The
Home > Computing and Information Technology > Computer programming / software engineering > Programming and scripting languages: general > Object-Oriented Thought Process, The
Object-Oriented Thought Process, The

Object-Oriented Thought Process, The

|
     0     
5
4
3
2
1




Out of Stock


Notify me when this book is in stock
About the Book

The Object-Oriented Thought Process Third Edition   Matt Weisfeld   An introduction to object-oriented concepts for developers looking to master modern application practices.   Object-oriented programming (OOP) is the foundation of modern programming languages, including C++, Java, C#, and Visual Basic .NET. By designing with objects rather than treating the code and data as separate entities, OOP allows objects to fully utilize other objects’ services as well as inherit their functionality. OOP promotes code portability and reuse, but requires a shift in thinking to be fully understood. Before jumping into the world of object-oriented programming languages, you must first master The Object-Oriented Thought Process.   Written by a developer for developers who want to make the leap to object-oriented technologies as well as managers who simply want to understand what they are managing, The Object-Oriented Thought Process provides a solution-oriented approach to object-oriented programming. Readers will learn to understand object-oriented design with inheritance or composition, object aggregation and association, and the difference between interfaces and implementations. Readers will also become more efficient and better thinkers in terms of object-oriented development.   This revised edition focuses on interoperability across various technologies, primarily using XML as the communication mechanism. A more detailed focus is placed on how business objects operate over networks, including client/server architectures and web services.   “Programmers who aim to create high quality software–as all programmers should–must learn the varied subtleties of the familiar yet not so familiar beasts called objects and classes. Doing so entails careful study of books such as Matt Weisfeld’s The Object-Oriented Thought Process.” –Bill McCarty, author of Java Distributed Objects, and Object-Oriented Design in Java   Matt Weisfeld is an associate professor in business and technology at Cuyahoga Community College in Cleveland, Ohio. He has more than 20 years of experience as a professional software developer, project manager, and corporate trainer using C++, Smalltalk, .NET, and Java. He holds a BS in systems analysis, an MS in computer science, and an MBA in project management. Weisfeld has published many articles in major computer trade magazines and professional journals.

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     Representing Composition with UML 136 Why Encapsulation Is Fundamental to OO 138     How Inheritance Weakens Encapsulation 139     A Detailed Example of Polymorphism 141 Object Responsibility 141 Conclusion 145 References 146 Example Code Used in This Chapter 146   8 Frameworks and Reuse: Designing with Interfaces and Abstract Classes 151 Code: To Reuse or Not to Reuse? 151 What Is a Framework? 152 What Is a Contract? 153     Abstract Classes 154     Interfaces 157     Tying It All Together 159     The Compiler Proof 161     Making a Contract 162     System Plug-in-Points 165 An E-Business Example 165     An E-Business Problem 165     The Non-Reuse Approach 166     An E-Business Solution 168     The UML Object Model 168 Conclusion 173 References 173 Example Code Used in This Chapter 173   9 Building Objects 179 Composition Relationships 179 Building in Phases 181 Types of Composition 183     Aggregations 183     Associations 184     Using Associations and Aggregations Together 185 Avoiding Dependencies 186 Cardinality 186     Multiple Object Associations 189     Optional Associations 190 Tying It All Together: An Example 191 Conclusion 192 References 192   10 Creating Object Models with UML 193 What Is UML? 193 The Structure of a Class Diagram 194 Attributes and Methods 196     Attributes 196     Methods 197 Access Designations 197 Inheritance 198 Interfaces 200 Composition 201     Aggregations 201     Associations 201 Cardinality 204 Conclusion 205 References 205   11 Objects and Portable Data: XML 207 Portable Data 207 The Extensible Markup Language (XML) 209 XML Versus HTML 209 XML and Object-Oriented Languages 210 Sharing Data Between Two Companies 211 Validating the Document with the Document Type Definition (DTD) 212 Integrating the DTD into the XML Document 213 Using Cascading Style Sheets 220 Conclusion 223 References 223   12 Persistent Objects: Serialization and Relational Databases 225 Persistent Objects Basics 225 Saving the Object to a Flat File 227     Serializing a File 227     Implementation and Interface Revisited 229     What About the Methods? 231 Using XML in the Serialization Process 231 Writing to a Relational Database 234     Accessing a Relational Database 236 Loading the Driver 238     Making the Connection 238     The SQL Statements 239 Conclusion 242 References 242 Example Code Used in This Chapter 242   13 Objects and the Internet 247 Evolution of Distributed Computing 247 Object-Based Scripting Languages 248 A JavaScript Validation Example 250 Objects in a Web Page 253     JavaScript Objects 254     Web Page Controls 255     Sound Players 257     Movie Players 257     Flash 258 Distributed Objects and the Enterprise 258     The Common Object Request Broker Architecture (CORBA) 259     Web Services Definition 263     Web Services Code 267     Invoice.cs 267     Invoice.vb 268 Conclusion 270 References 270   14 Objects and Client/Server Applications 271 Client/Server Approaches 271 Proprietary Approach 272     Serialized Object Code 272     Client Code 273     Server Code 275     Running the Proprietary Client/Server Example 276 Nonproprietary Approach 278     Object Definition Code 278     Client Code 280     Server Code 281     Running the Nonproprietary Client/Server Example 283 Conclusion 283 References 284 Example Code Used in This Chapter 284   15 Design Patterns 287 Why Design Patterns? 288 Smalltalk’s Model/View/Controller 289 Types of Design Patterns 290     Creational Patterns 291     Structural Patterns 295     Behavioral Patterns 298 Antipatterns 299 Conclusion 300 References 300 Example Code Used in This Chapter 301   Index 309


Best Sellers


Product Details
  • ISBN-13: 9780132704687
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison Wesley
  • Language: English
  • ISBN-10: 0132704684
  • Publisher Date: 25 Aug 2008
  • Binding: Digital download


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Object-Oriented Thought Process, The
Pearson Education (US) -
Object-Oriented Thought Process, The
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Object-Oriented Thought Process, The

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals

    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!