The object-oriented thought process

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 .N...

Descripción completa

Detalles Bibliográficos
Otros Autores: Weisfeld, Matt A Author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: [Place of publication not identified] Addison Wesley 2009
Edición:3rd ed
Colección:Developer's library The object-oriented thought process
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009627317506719
Tabla de Contenidos:
  • Cover
  • Contents
  • Introduction
  • 1 Introduction to Object-Oriented Concepts
  • Procedural Versus OO Programming
  • Moving from Procedural to Object-Oriented Development
  • Procedural Programming
  • OO Programming
  • What Exactly Is an Object?
  • Object Data
  • Object Behaviors
  • What Exactly Is a Class?
  • Classes Are Object Templates
  • Attributes
  • Methods
  • Messages
  • Using UML to Model a Class Diagram
  • Encapsulation and Data Hiding
  • Interfaces
  • Implementations
  • A Real-World Example of the Interface/Implementation Paradigm
  • A Model of the Interface/Implementation Paradigm
  • Inheritance
  • Superclasses and Subclasses
  • Abstraction
  • Is-a Relationships
  • Polymorphism
  • Composition
  • Abstraction
  • Has-a Relationships
  • Conclusion
  • Example Code Used in This Chapter
  • 2 How to Think in Terms of Objects
  • Knowing the Difference Between the Interface and the Implementation
  • The Interface
  • The Implementation
  • An Interface/Implementation Example
  • Using Abstract Thinking When Designing Interfaces
  • Giving the User the Minimal Interface Possible
  • Determining the Users
  • Object Behavior
  • Environmental Constraints
  • Identifying the Public Interfaces
  • Identifying the Implementation
  • Conclusion
  • References
  • 3 Advanced Object-Oriented Concepts
  • Constructors
  • The Default Constructor
  • When Is a Constructor Called?
  • What's Inside a Constructor?
  • The Default Constructor
  • Using Multiple Constructors
  • The Design of Constructors
  • Error Handling
  • Ignoring the Problem
  • Checking for Problems and Aborting the Application
  • Checking for Problems and Attempting to Recover
  • Throwing an Exception
  • The Concept of Scope
  • Local Attributes
  • Object Attributes
  • Class Attributes
  • Operator Overloading
  • Multiple Inheritance
  • Object Operations
  • Conclusion
  • References.
  • Example Code Used in This Chapter
  • 4 The Anatomy of a Class
  • The Name of the Class
  • Comments
  • Attributes
  • Constructors
  • Accessors
  • Public Interface Methods
  • Private Implementation Methods
  • Conclusion
  • References
  • Example Code Used in This Chapter
  • 5 Class Design Guidelines
  • Modeling Real World Systems
  • Identifying the Public Interfaces
  • The Minimum Public Interface
  • Hiding the Implementation
  • Designing Robust Constructors (and Perhaps Destructors)
  • Designing Error Handling into a Class
  • Documenting a Class and Using Comments
  • Building Objects with the Intent to Cooperate
  • Designing with Reuse in Mind
  • Documenting a Class and Using Comments
  • Designing with Extensibility in Mind
  • Making Names Descriptive
  • Abstracting Out Nonportable Code
  • Providing a Way to Copy and Compare Objects
  • Keeping the Scope as Small as Possible
  • A Class Should Be Responsible for Itself
  • Designing with Maintainability in Mind
  • Using Iteration
  • Testing the Interface
  • Using Object Persistence
  • Serializing and Marshaling Objects
  • Conclusion
  • References
  • Example Code Used in This Chapter
  • 6 Designing with Objects
  • Design Guidelines
  • Performing the Proper Analysis
  • Developing a Statement of Work
  • Gathering the Requirements
  • Developing a Prototype of the User Interface
  • Identifying the Classes
  • Determining the Responsibilities of Each Class
  • Determining How the Classes Collaborate with Each Other
  • Creating a Class Model to Describe the System
  • Case Study: A Blackjack Example
  • Using CRC Cards
  • Identifying the Blackjack Classes
  • Identifying the Classes' Responsibilities
  • UML Use-Cases: Identifying the Collaborations
  • First Pass at CRC Cards
  • UML Class Diagrams: The Object Model
  • Prototyping the User Interface
  • Conclusion
  • References
  • 7 Mastering Inheritance and Composition.
  • Reusing Objects
  • Inheritance
  • Generalization and Specialization
  • Design Decisions
  • Composition
  • Representing Composition with UML
  • Why Encapsulation Is Fundamental to OO
  • How Inheritance Weakens Encapsulation
  • A Detailed Example of Polymorphism
  • Object Responsibility
  • Conclusion
  • References
  • Example Code Used in This Chapter
  • 8 Frameworks and Reuse: Designing with Interfaces and Abstract Classes
  • Code: To Reuse or Not to Reuse?
  • What Is a Framework?
  • What Is a Contract?
  • Abstract Classes
  • Interfaces
  • Tying It All Together
  • The Compiler Proof
  • Making a Contract
  • System Plug-in-Points
  • An E-Business Example
  • An E-Business Problem
  • The Non-Reuse Approach
  • An E-Business Solution
  • The UML Object Model
  • Conclusion
  • References
  • Example Code Used in This Chapter
  • 9 Building Objects
  • Composition Relationships
  • Building in Phases
  • Types of Composition
  • Aggregations
  • Associations
  • Using Associations and Aggregations Together
  • Avoiding Dependencies
  • Cardinality
  • Multiple Object Associations
  • Optional Associations
  • Tying It All Together: An Example
  • Conclusion
  • References
  • 10 Creating Object Models with UML
  • What Is UML?
  • The Structure of a Class Diagram
  • Attributes and Methods
  • Attributes
  • Methods
  • Access Designations
  • Inheritance
  • Interfaces
  • Composition
  • Aggregations
  • Associations
  • Cardinality
  • Conclusion
  • References
  • 11 Objects and Portable Data: XML
  • Portable Data
  • The Extensible Markup Language (XML)
  • XML Versus HTML
  • XML and Object-Oriented Languages
  • Sharing Data Between Two Companies
  • Validating the Document with the Document Type Definition (DTD)
  • Integrating the DTD into the XML Document
  • Using Cascading Style Sheets
  • Conclusion
  • References
  • 12 Persistent Objects: Serialization and Relational Databases.
  • Persistent Objects Basics
  • Saving the Object to a Flat File
  • Serializing a File
  • Implementation and Interface Revisited
  • What About the Methods?
  • Using XML in the Serialization Process
  • Writing to a Relational Database
  • Accessing a Relational Database
  • Loading the Driver
  • Making the Connection
  • The SQL Statements
  • Conclusion
  • References
  • Example Code Used in This Chapter
  • 13 Objects and the Internet
  • Evolution of Distributed Computing
  • Object-Based Scripting Languages
  • A JavaScript Validation Example
  • Objects in a Web Page
  • JavaScript Objects
  • Web Page Controls
  • Sound Players
  • Movie Players
  • Flash
  • Distributed Objects and the Enterprise
  • The Common Object Request Broker Architecture (CORBA)
  • Web Services Definition
  • Web Services Code
  • Invoice.cs
  • Invoice.vb
  • Conclusion
  • References
  • 14 Objects and Client/Server Applications
  • Client/Server Approaches
  • Proprietary Approach
  • Serialized Object Code
  • Client Code
  • Server Code
  • Running the Proprietary Client/Server Example
  • Nonproprietary Approach
  • Object Definition Code
  • Client Code
  • Server Code
  • Running the Nonproprietary Client/Server Example
  • Conclusion
  • References
  • Example Code Used in This Chapter
  • 15 Design Patterns
  • Why Design Patterns?
  • Smalltalk's Model/View/Controller
  • Types of Design Patterns
  • Creational Patterns
  • Structural Patterns
  • Behavioral Patterns
  • Antipatterns
  • Conclusion
  • References
  • Example Code Used in This Chapter
  • Index.