Hands-On Object-Oriented Programming: Mastering OOP Features for Real-World Software Systems Development
معرفی کتاب «Hands-On Object-Oriented Programming: Mastering OOP Features for Real-World Software Systems Development» نوشتهٔ Anil Kumar Rangisetti، منتشرشده توسط نشر Apress L. P. در سال 2024. این کتاب در فرمت epub، زبان انگلیسی ارائه شده است. «Hands-On Object-Oriented Programming: Mastering OOP Features for Real-World Software Systems Development» در دستهٔ بدون دستهبندی قرار دارد.
Learn how to easily design and implement a software system using object-oriented programming. Through hands-on activities, this book equips you with the real-world practice needed to master OOP skills that can be applied universally across any programming language. This book is dedicated to bridging the gap between theoretical concepts and practical implementation in software development using OOP. Readers will first understand the importance of OOP in handling software complexities before learning how to model real-world problems through access control, extendible object design, and object relationships. Specifically, the author discusses how to use inheritance, association, and polymorphism concepts for implementing reusable and easy-to-use complex software. More importantly, this book covers design patterns and event-driven programming for learning how to model complex interactions among various objects of the software system to implement various use cases. Unlike existing books on OOP which teach syntax and semantics through standard examples, this book leverages an immersive learning experience through a variety of real-world use cases, applications, games, and system software. While written in C++, the skills can be applied to any OOP language of the reader's preference. The book's last chapters will quickly introduce Python and Solidity languages for learning advanced technologies. By the end, novice and seasoned developers will know how to implement practical and reusable software systems with confidence. What You Will Learn Apply OOP concepts through real-time use cases: games, applications software (online shopping, reservations, etc.), system software (protocols, simulators, etc.), and modeling and implementation using C+ Design and implement reusable and extendible software with OOP Understand the importance of design patterns and learn how to use them for solving real-time issues Use event-driven programming for implementing complete interactions of complex application software, system software, and simulators Implement OOP using C++ features and discover Python and Solidity constructs for OOP Who This Book Is For Beginners and intermediate software developers with basic programming knowledge to quickly learn OOP concepts with C++. Advanced users will find it useful for quickly exploring best-design principles, patterns, and event-driven programming for implementing complex software systems. Table of Contents About the Author About the Technical Reviewer Acknowledgments Introduction Chapter 1: The Importance of Object-Oriented Programming Algorithms vs. Software Algorithm Characteristics Write an Algorithm Software Software Development Challenges Introduction to OOP Concepts Class Data Encapsulation Data Abstraction Data Hiding Objects Objects Details Inheritance Polymorphism How OOP Approaches Simplify the Software Complexity Systematically Modeling Real-World Entities into Software Hands-on Activity: Online Shopping 1. Define the Problem Scope and Context 2. Identify and Understand Users 3. List all Users/actors transactions, actions, and tasks Customers Shopkeeper 4. Inspect User Interactions for Modeling Classes Customer Registration Customer Class Shopkeeper Registration Shopkeeper Class Browsing Items Item Class Placing Orders Canceling an Order Delivering Orders Hands-on Activity: Simple Adventurous Game 1. Define Problem Scope and Context 2. Identify and Understand Gaming Characters and 3. Inspect all Users/actors transactions, actions, and tasks 4. Inspect Game Characters and objects Interactions for Modeling Classes Player and Enemy Classes Gun Class Bomb Class Summary Practice: Hands-on Activities Chapter 2: Start Learning OOP Using C++ C++ OOP Constructs C++ Specific Programming Constructs C++ Specific Keywords C++ Specific Operators Input-Output Statements C++ Basic OOP Constructs C++ Classes C++ Objects C++ Built-in Classes C++ String Class C++ Vector Class C++ Program Structure Model Real-World Entities Using C++ Classes Interacting with Objects Object Access Control Modes Hands-on Activity: Smart Applications Summary Practice: Hands-On Activities Chapter 3: Systematically Starting and Stopping Software Objects Software Objects Startup and Shutdown Sequences Starting a Software Application Initialization and Configuration Resources Allocation Connecting with Necessary Services Closing a Software Application Releasing Resources Disconnect, Stop, and Remove Services Constructors for Handling Startup Sequences Constructors in C++ C++ Supporting Constructors C++ Compiler Providing Constructors Hands-on Activities for Practicing Constructors The Importance of Destructors for Doing Graceful Shutdowns Destructors in C++ Hands-on Destructors Hands-on Activity 1: Constructors Hands-on Activity 2: Destructors Summary Practice: Hands-on Activities Chapter 4: Exploring Important C++ Features C++ Friend Classes and Functions C++ Friend Functions C++ Friend Class Hands-on Activity: When to Use C++ Friend Concepts Best Practices in Passing Arguments Arguments Passing Activities Sharing Data of Objects Using C++ Static Restricting Accidental Changes Using C++ const C++ Const and Pointer Usage Activities Summary Practice: Hands-on Activities Chapter 5: Quickly and Systematically Model Real-World Problems into Software Modeling Real-World Problems into Software Design A Simple Gaming Application A Simple Shopping Application Modeling Game World Entities Using C++ Classes Game Implementation Using C++ Classes Model Application Entities Using C++ Classes Basic Tasks Related to a Shopping Application Basic Customer Interactions in a Shopping Application Basic Shopkeeper Interactions in a Shopping Application Simulating Shopping Application Tasks Summary Practice: Hands-on Activities Chapter 6: Quick Software Development Using OOP The Importance of Inheritance Inheritance Approaches Issues in Combining Inheritance Approaches Access Controls and Inheritance Constructors and Destructors Working Order in Inheritance Context Practicing the Reduce and Reuse Principle Building New Software Building Blocks Versions Easily Combine or Connect Objects Wisely Object Composition: Special Gaming Weapon Object Composition and Aggregation Hands-on Activity: Inheritance and Object Association Summary Practice: Hands-on Activities Chapter 7: Easy-to-Use Software Development Using OOP The Importance of Polymorphism Function Overloading Function Overriding Overloading Operators to Deal with Complex Objects Computations How to Overload Operators Practice Operator Overloading Usage Generic Functions and Data Structures Practice with Generic Functions Generic Data Structures Practice Implementing a Generic Data Structure Using Dynamic Polymorphism for Offering Common Interfaces The Importance of Virtual Functions The Importance of Pure Virtual Functions and Abstract Classes Practice with Dynamic Polymorphism Summary Practice: Hands-on Activities Chapter 8: Design Patterns Introduction to Design Patterns Creational Patterns Structural Patterns Behavioral Patterns Learning Creational Design Patterns The Factory Method Practice Tasks The Singleton Pattern Practice Tasks Structural Design Patterns The Facade Pattern Practice Tasks The Proxy Server Pattern Practice Tasks Behavioral Design Patterns The Chain of Responsibility Pattern Practice Tasks The Template Method Practice Tasks Summary Chapter 9: Event-Driven Programming The Importance of Event-Driven Programming Key Concepts Producers and Consumers Events Events Management Asynchronous Methods for Message Exchange Advantages and Use Cases Structure Using C++ for Events and Event Handlers Implementing Application Events and Subscribing to Classes Quick Practice Hands-on Activity: Design a Simulator IoTSensorsHandler Events SmartVehiclesHandler Custom Events SmartApplication Simulation Summary Practice: Hands-on Activities Chapter 10: A Brief Introduction to OOP in Python and Solidity Other Important OOP Languages The Importance of Python Programming The Importance of Solidity Programming Python Basic Programming Constructs for OOP Python Basic Programming Constructs Python OOP Constructs Python OOP Constructs for Inheritance Python OOP Constructs for Polymorphism Practicing OOP in Python Using Python for Encapsulation and Data-Hiding Features Using Python to Implement Inheritance Using Python for Polymorphism Solidity Basic Programming Constructs for OOP Solidity Basics Solidity Inheritance Programming Solidity Polymorphism Programming Practicing OOP in Solidity Using the Remix Editor for Practicing Solidity Practicing with Smart Contracts Extending Smart Contracts Using Inheritance Using Solidity for Polymorphism Summary Index
دانلود کتاب Hands-On Object-Oriented Programming: Mastering OOP Features for Real-World Software Systems Development