0%

Design patterns are not "reusable solutions" but instead create a rich language developers can use to communicate, collaborate, and make collective decisions about design. When you study design patterns, you are teaching yourself about what a good design is and why. Design patterns exemplify the principles and strong practices that developers can depend on to build high-quality solutions. Developers can rely on these essential skills to guide their design considerations. Scott L. Bain has trained thousands of developers in design patterns for over 20 years, providing them with a rich background in this valuable discipline.

Table of Contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Table of Contents
  5. Introduction from the Author
  6. What Design Patterns Represent
  7. Design to Interfaces
  8. Favor Composition over Inheritance
  9. Encapsulate the Concept that Varies
  10. Qualities, Principles, Practices
  11. Qualities Patterns Share: Strong Cohesion
  12. Qualities Patterns Share: Proper Coupling
  13. Qualities Patterns Share: Avoiding Redundancy
  14. Qualities Patterns Share: Robust Encapsulation
  15. Qualities Patterns Share: Testability
  16. Principles Patterns Follow: Open-Closed
  17. Principles Patterns Follow: Liskov Substitution
  18. Principles Patterns Follow: Dependency Inversion
  19. Principles Patterns Follow: Separation of Concerns
  20. The Patterns Themselves
  21. The Abstract Factory
  22. The Adapter
  23. The Bridge
  24. The Builder
  25. The Chain of Responsibility
  26. The Composite
  27. The Decorator
  28. The Facade
  29. The Flyweight
  30. The Mediator
  31. The Memento
  32. The Mock Object
  33. The Null Object
  34. The Object Pool
  35. The Observer
  36. The Proxy
  37. The Singleton
  38. The Strategy
  39. The State
  40. The Template Method
  41. The Visitor
  42. Practice: Programming by Intention
  43. Practice: Encapsulate Constructors in Simple Classes
  44. Practice: Encapsulate by Policy, Reveal by Need
  45. Practice: Adhere to a Coding Standard
  46. Acknowledgments
  47. References
3.143.239.234