Home > General > Designing With Objects: Object-Oriented Design Patterns Explained With Stories
18%
Designing With Objects: Object-Oriented Design Patterns Explained With Stories

Designing With Objects: Object-Oriented Design Patterns Explained With Stories

          
5
4
3
2
1

Available


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Add to Wishlist

About the Book

Designing with Objects is unique. It explains design patterns via the short story medium instead of with sterile examples. It is the third in a trilogy of books by Avinash C. Kak, following Programming with Objects (Wiley, 2003) and Scripting with Objects (Wiley, 2008). Designing with Objects confronts how difficult it is for students to learn complex patterns based on conventional scenarios that they may not be able to relate to. In contrast, it shows that stories from the fictional world of Harry Potter provide highly relatable and engaging models. After explaining core notions in a patter and its typical use in real-world applications, each chapter shows how a pattern can be mapped to a Harry Potter story. The next step is an explanation of the pattern through its Java implementation. The following patterns appear in three sections: Abstract Factory, Builder, Factory Method, Prototype, and Singleton; Adapter, Bridge, Composite, Decorator, Facade, Flyweight, and Proxy; and the Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, and Visitor. For readers' use, Java code for each patter is included in the book's companion website.

About the Author

Avinash C. Kak is Professor of Electrical and Computer Engineering at Purdue University. His areas of interest are digital image processing, computerized tomography, and high-level programming languages. Professor Kak has been awarded numerous Best Teacher of the Year awards at Purdue University. He is the author of Scripting with Objects and Programming with Objects, both published by Wiley.



Table of Contents:
PREFACE ACKNOWLEDGMENTS 1 Why Learn Design Patterns and Why Do So with Help from Harry Potter? 1.1 The OO Design Patterns "Bible" by GoF 1.2 But What Has Harry Potter Got to Do with OO Design Patterns? 1.3 Is Familiarity with Harry Potter a Requirement for Understanding This Book? 1.4 How the Pattern Explanations are Organized 1.5 The Terminology of Object-Oriented Programming 1.6 The UML Notation Used in the Class Diagrams 1.6.1 Association as a Relationship Between Classes 1.6.2 Aggregation and Composition as Relationships Between Classes 1.6.3 Representing Attributes 1.6.4 Representing Operations I CREATIONAL PATTERNS 2 Abstract Factory 2.1 The Concept of a Factory in Software 2.2 Intent and Applicability 2.3 Introduction to the Abstract Factory Pattern 2.4 The Abstract Factory Pattern in Real-World Applications 2.5 Harry Potter Story Used to Illustrate the Abstract Factory Pattern 2.6 A Top Level View of the Pattern Demonstration 2.7 The Abstract Class Factory 2.8 The Helper Class FactoryStore 2.9 The Abstract Class Enchanted 2.10 The Concrete Classes for Magical Objects 2.11 The Concrete Factory Classes 2.12 The Client Class Diagon AlleyRetailer 2.13 Playing with the Code 3 Builder 3.1 Building Complex Objects 3.2 Intent and Applicability 3.3 Introduction to the Builder Pattern 3.4 The Builder Pattern in Real-World Applications 3.5 Harry Potter Story Used to Illustrate the Builder Pattern 3.6 A Top-Level View of the Pattern Demonstration 3.7 The Abstract Class PotionMaker 3.8 The Concrete Extensions of PotionMaker 3.9 The Director Class 3.10 The Potion Class 3.11 The Ingredient Class 3.12 The PotionMakingFeasibilityViolation Class 3.13 The Client Class 3.14 Playing with the Code 4 Factory Method 4.1 Revisiting the Concept of a Factory in Software 4.2 Intent and Applicability 4.3 Introduction to the Factory Method Pattern 4.4 The Factory Method Pattern in Real-World Applications 4.5 Harry Potter Story Used to Illustrate the Factory Method Pattern 4.6 A Top Level View of the Pattern Demonstration 4.7 The Enchanted Class Hierarchy 4.8 The ArtifactFactory Class Hierarchy and the Factory Methods Contained Therein 4.9 The Client Class 4.10 Playing with the Code 5 Prototype 5.1 Why Not Make New Objects by Copying Old Objects? 5.2 Intent and Applicability 5.3 Introduction to the Prototype Pattern 5.4 The Prototype Pattern in Real-World Applications 5.5 Harry Potter Story Used to Illustrate The Prototype Pattern 5.6 A Top Level View of the Pattern Demonstration 5.7 The Dragon Class 5.8 The PrototypeManagerAndDuplicator Class 5.9 The DragonAficionado Class 5.10 The UnknownDragonException Class 5.11 Playing with the Code 6 Singleton 6.1 Singular Objects 6.2 Intent and Applicability 6.3 Introduction to the Singleton Pattern 6.4 The Singleton Pattern in Real-World Applications 6.5 Harry Potter Story Used to Illustrate the Singleton Pattern 6.6 A Top Level View of the Pattern Demonstration 6.7 The MinisterForMagic Class 6.8 The TestSingleton Class 6.9 Variations on the Singleton Pattern 6.10 Playing with the Code II STRUCTURAL PATTERNS 7 Adapter 7.1 Getting Things to Work Together 7.2 Intent and Applicability 7.3 Introduction to the Adapter Pattern 7.4 The Adapter Pattern in Real-World Applications 7.5 Harry Potter Story Used to Illustrate the Adapter Pattern 7.6 A Top Level View of the Pattern Demonstration 7.7 The Target Interface: TeachingDADA 7.8 The TeacherForDADA Class 7.9 The AdapterForSafeTeaching Class 7.10 The Client Class SchoolOfMagic 7.11 Object Adapter 7.12 Pluggable Adapter 7.13 Playing with the Code 8 Bridge 8.1 Concepts and Their Implementation 8.2 Intent and Applicability 8.3 Introduction to the Bridge Pattern 8.4 The Bridge Pattern in Real-World Applications 8.5 Harry Potter Story Used to Illustrate the Bridge Pattern 8.6 A Top Level View of the Pattern Demonstration 8.7 The Humanoid Class 8.8 The Dementor, Goblin, and HouseElf Classes 8.9 The Humanoid Imp Class 8.10 Implementation Classes for the Dementor, Goblin, and HouseElf Classes 8.11 The Client Class MinistryOfMagic 8.12 Playing with the Code 9 Composite 9.1 Relationships That Loop Back 9.2 Intent and Applicability 9.3 Introduction to the Composite Pattern 9.4 The Composite Pattern in Real-World Applications 9.5 Harry Potter Story Used to Illustrate the Composite Pattern 9.6 A Top Level View of the Pattern Demonstration 9.7 The WizardTraits Interface 9.8 The Wizard Class 9.9 The Auror Class 9.10 The Obliviator Class 9.11 The DepartmentHead Class 9.12 The Minister for Magic Class 9.13 The Client Class Test 9.14 Playing with the Code 10 Decorator 10.1 Onion as a Metaphor 10.2 Intent and Applicability 10.3 Introduction to the Decorator Pattern 10.4 The Decorator Pattern in Real-World Applications 10.5 Harry Potter Story Used to Illustrate the Decorator Pattern 10.6 A Top Level View of the Pattern Demonstration 10.7 The CoreMessageDeliveryClass Class 10.8 The Decorator Classes 10.9 The Client Class Test 10.10 Playing with the Code 11 Facade 11.1 Hiding Complexity 11.2 Intent and Applicability 11.3 Introduction to the Facade Pattern 11.4 The Facade Pattern in Real-World Applications 11.5 Harry Potter Story Used to Illustrate the Facade Pattern 11.6 A Top Level View of the Pattern Demonstration 11.7 The Abstract Root Class Facade 11.8 The Network Class 11.9 The Node, Link, and Path Classes 11.10 The Three Concrete Facade Classes 11.11 Testing the Demonstration Code 11.12 Playing with the Code 12 Flyweight 12.1 The Idea of Customized Duplications 12.2 Intent and Applicability 12.3 Introduction to the Flyweight Pattern 12.4 The Flyweight Pattern in Real-World Applications 12.5 Harry Potter Story Used to Illustrate the Flyweight Pattern 12.6 A Top Level View of the Pattern Demonstration 12.7 The HeadMasterPortrait Class 12.8 The FlyweightImageStore Class 12.9 The ImageManager Class 12.10 The PortraitBorderChoices Class 12.11 The ImageNotAvailableException Class 12.12 The PortraitMakerAssignment Class 12.13 Playing with the Code 12.14 Acknowledgment 13 Proxy 13.1 Is It Always Necessary to Have the Real Thing? 13.2 Intent and Applicability 13.3 Introduction to the Proxy Pattern 13.4 The Proxy Pattern in Real-World Applications 13.5 Harry Potter Story Used to Illustrate the Proxy Pattern 13.6 A Top Level View of the Pattern Demonstration 13.7 The Abstract Class Wizard 13.8 The DarkWizardTraits Interface 13.9 The DarkWizard Class 13.10 The DarkLord Class 13.11 The ClientClass Class 13.12 Playing with the Code III BEHAVIORAL PATTERNS 14 Chain of Responsibility 14.1 Passing the Buck 14.2 Intent and Applicability 14.3 Introduction to the Chain of Responsibility Pattern 14.4 The Chain of Responsibility Pattern in Real-World Applications 14.5 Harry Potter Story Used to Illustrate the Chain of Responsibility Pattern 14.6 A Top Level View of the Pattern Demonstration 14.7 The Interface Class Violations 14.8 The Abstract Class Adjudicator 14.9 The Player Class 14.10 The Classes with the Authority to Resolve Violations 14.11 Testing the Code 14.12 Playing with the Code 15 Command 15.1 Actions Versus the Actors 15.2 Intent and Applicability 15.3 Introduction to the Command Pattern 15.4 The Command Pattern in Real-World Applications 15.5 Harry Potter Story Used to Illustrate the Command Pattern 15.6 A Top Level View of the Pattern Demonstration 15.7 The Command Interface 15.8 The MyPlaces Interface 15.9 The ProtectHarryPotter Class 15.10 The Wizard Class 15.11 The Squib Class 15.12 The Invoker Class 15.13 The UnableToProtectHarryPotterException Class 15.14 The Client Class 15.15 Playing with the Code 16 Interpreter 16.1 Parsing versus Interpretation 16.2 Intent and Applicability 16.3 Introduction to the Interpreter Pattern 16.4 The Interpreter Pattern in Real-World Applications 16.5 Harry Potter Story Used to Illustrate the Interpreter Pattern 16.6 A Parser Front-End for the Interpreter Pattern 16.7 A Top Level View of the Pattern Demonstration 16.8 The Driver Class 16.9 The Interpreter Sentence Class 16.10 The Worker Classes for Interpretation 16.11 The Utility Class ShowSyntaxTree 16.12 Playing with the Code 17 Iterator 17.1 Storing Object Collections and Interacting with Them 17.2 Intent and Applicability 17.3 Introduction to the Iterator Pattern 17.4 The Iterator Pattern in Real-World Applications 17.5 Harry Potter Story Used to Illustrate the Iterator Pattern 17.6 A Top Level View of the Pattern Demonstration 17.7 A Utility Interface for Demonstrating the Iterator Pattern 17.8 The Iterator Interface 17.9 The Fresher Class 17.10 The SortingHat Class 17.11 The MagicCollection Interface 17.12 The MagicList and MagicSet Classes 17.13 The Class Range 17.14 Playing with the Code 17.15 Credits 18 Mediator 18.1 The Role of Mediation in Collaborative Problem Solving 18.2 Intent and Applicability 18.3 Introduction to the Mediator Pattern 18.4 The Mediator Pattern in Real-World Applications 18.5 Harry Potter Story Used to Illustrate the Mediator Pattern 18.6 A Top Level View of the Pattern Demonstration 18.7 The Abstract Class Mediator 18.8 The Interface TrialElements 18.9 The MinistryOfMagicTrialMediator Class 18.10 The Witness Class 18.11 The Trial Interface 18.12 The HarryPotterTrial Class 18.13 Playing with the Code 19 Memento 19.1 Recalling the Past 19.2 Intent and Applicability 19.3 Introduction to the Memento Pattern 19.4 The Memento Pattern in Real-World Applications 19.5 Harry Potter Story Used to Illustrate the Memento Pattern 19.6 A Top Level View of the Pattern Demonstration 19.7 The HogwartsHappening Class and The Inner Memento Class 19.8 The Client Class 19.9 Playing with the Code 20 Observer 20.1 Subscription-Based Broadcasting 20.2 Intent and Applicability 20.3 Introduction to the Observer Pattern 20.4 The Observer Pattern in Real-World Applications 20.5 Harry Potter Story Used to Illustrate the Observer Pattern 20.6 A Top Level View of the Pattern Demonstration 20.7 The Observer Interface 20.8 The Observable Interface 20.9 The DarkLord Class 20.10 The DeathEater Class 20.11 The GodProcess Class 20.12 Playing with the Code 21 State 21.1 Contextual Dependence of Behaviors 21.2 Intent and Applicability 21.3 Introduction to the State Pattern 21.4 The State Pattern in Real-World Applications 21.5 Harry Potter Story Used to Illustrate the State Pattern 21.6 A Top Level View of the Pattern Demonstration 21.7 The DADA State Interface 21.8 The Year-by-Year Implementation Classes for the State 21.9 The TeachingDADA Class 21.10 The Hogwarts Class 21.11 Playing with the Code 22 Strategy 22.1 Strategies in the Pursuit of Goals 22.2 Intent and Applicability 22.3 Introduction to the Strategy Pattern 22.4 The Strategy Pattern in Real-World Applications 22.5 Harry Potter Story Used to Illustrate the Strategy Pattern 22.6 A Top Level View of the Pattern Demonstration 22.7 The Abstract Root Class for Strategies: StrategyAbstractRoot 22.8 The Concrete Strategy Classes 22.9 The Champion Class 22.10 The SecondTaskManager Class 22.11 Playing with the Code 23 Template Method 23.1 Customizable Recipes 23.2 Intent and Applicability 23.3 Introduction to the Template Method Pattern 23.4 The Template Method Pattern in Real-World Applications 23.5 Harry Potter Story Used to Illustrate the Template Method Pattern 23.6 A Top Level View of the Pattern Demonstration 23.7 The Abstract Root of Narrative Generation Classes 23.8 Concrete Classes for Narrative Generation 23.9 The Executable Class 23.10 Playing with the Code 24 Visitor 24.1 Hooks, Good and Evil 24.2 Intent and Applicability 24.3 Introduction to the Visitor Pattern 24.4 The Visitor Pattern in Real-World Applications 24.5 Harry Potter Story Used to Illustrate the Visitor Pattern 24.6 A Top Level View of the Pattern Demonstration 24.7 The Visitor Interface 24.8 Two Concrete Implementations of the Visitor Interface 24.9 A Re-Implementation of the Wizard Hierarchy of the Composite Pattern 24.10 The Executable Class Client 24.11 Playing with the Code REFERENCES INDEX


Best Sellers


Product Details
  • ISBN-13: 9788126555239
  • Publisher: Wiley India Pvt Ltd
  • Binding: Paperback
  • No of Pages: 504
  • ISBN-10: 8126555238
  • Publisher Date: April, 2015
  • Language: English

Related Categories

Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

REVIEWS           
Click Here To Be The First to Review this Product
Designing With Objects: Object-Oriented Design Patterns Explained With Stories
Wiley India Pvt Ltd -
Designing With Objects: Object-Oriented Design Patterns Explained With Stories
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.

Designing With Objects: Object-Oriented Design Patterns Explained With Stories

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!