The Object-Oriented Thought Process
Matt Weisfeld
The Object-Oriented Thought Process
Matt Weisfeld
- Producent: Addison Wesley Publishing Company
- Rok produkcji: 2013
- ISBN: 9780321861276
- Ilość stron: 336
- Oprawa: Miękka
Niedostępna
Opis: The Object-Oriented Thought Process - Matt Weisfeld
The Object-Oriented Thought Process, Fourth Edition 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#, Visual Basic .NET, Ruby, and Objective-C. Objects also form the basis for many web technologies such as JavaScript, Python, and PHP. It is of vital importance to learn the fundamental concepts of object orientation before starting to use object-oriented development environments. OOP promotes good design practices, code portability, and reuse-but it requires a shift in thinking to be fully understood. Programmers new to OOP should resist the temptation to jump directly into a particular programming language (such as Objective-C, VB .NET, C++, C# .NET, or Java) or a modeling language (such as UML), and instead first take the time to learn what author Matt Weisfeld calls "the object-oriented thought process." Written by a developer for developers who want to make the leap to object-oriented technologies, The Object-Oriented Thought Process provides a solutions-oriented approach to object-oriented programming. Readers will learn to understand the proper uses of inheritance and composition, the difference between aggregation and association, and the important distinction between interfaces and implementations. While programming technologies have been changing and evolving over the years, object-oriented concepts remain a constant-no matter what the platform. This revised edition focuses on interoperability across programming technologies, whether you are using objects in traditional application design, in XML-based data transactions, in web page development, in mobile apps, or in any modern programming environment. "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 Contents at a Glance 1 Introduction to Object-Oriented Concepts 2 How to Think in Terms of Objects 3 Advanced Object-Oriented Concepts 4 The Anatomy of a Class 5 Class Design Guidelines 6 Designing with Objects 7 Mastering Inheritance and Composition 8 Frameworks and Reuse: Designing with Interfaces and Abstract Classes 9 Building Objects and Object-Oriented Design 10 Creating Object Models 11 Objects and Portable Data: XML and JSON 12 Persistent Objects: Serialization, Marshaling, and Relational Databases 13 Objects in Web Services, Mobile Apps, and Hybrids 14 Objects and Client/Server Applications 15 Design Patterns1 Introduction to Object-Oriented Concepts The Fundamental Concepts Objects and Legacy Systems 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? Creating Objects Attributes Methods Messages Using Class Diagrams as a Visual Tool 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 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 Providing the Absolute Minimal User Interface Possible Determining the Users Object Behavior Environmental Constraints Identifying the Public Interfaces Identifying the Implementation 3 Advanced Object-Oriented Concepts Constructors 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 Importance of Scope Local Attributes Object Attributes Class Attributes Operator Overloading Multiple Inheritance Object Operations 4 The Anatomy of a Class The Name of the Class Comments Attributes Constructors Accessors Public Interface Methods Private Implementation Methods 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 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 in the Development Process Testing the Interface Using Object Persistence Serializing and Marshaling Objects 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 Prototyping the User Interface Object Wrappers Structured Code Wrapping Structured Code Wrapping Nonportable Code Wrapping Existing Classes 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 Abstract Classes, Virtual Methods, and Protocols 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 9 Building Objects and Object-Oriented Design 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 10 Creating Object Models What Is UML? The Structure of a Class Diagram Attributes and Methods Attributes Methods Access Designations Inheritance Interfaces Composition Aggregations Associations Cardinality 11 Objects and Portable Data: XML and JSON 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 JavaScript Object Notation (JSON) 12 Persistent Objects: Serialization, Marshaling, 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 13 Objects in Web Services, Mobile Apps, and Hybrids 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 Player Flash Distributed Objects and the Enterprise The Common Object Request Broker Architecture (CORBA) Web Services Definition Web Services Code Representational State Transfer (ReST) 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 15 Design Patterns Why Design Patterns? Smalltalk's Model/View/Controller Types of Design Patterns Creational Patterns Structural Patterns Behavioral Patterns Antipatterns
Szczegóły: The Object-Oriented Thought Process - Matt Weisfeld
Tytuł: The Object-Oriented Thought Process
Autor: Matt Weisfeld
Producent: Addison Wesley Publishing Company
ISBN: 9780321861276
Rok produkcji: 2013
Ilość stron: 336
Oprawa: Miękka
Waga: 0.53 kg