Key Features
------------
* Understand the structural, creational, and behavioral Python
design patterns
* Get to know the context and application of design patterns to
solve real-world problems in software architecture, design, and
application development
* Get practical exposure through sample implementations in Python
v3.5 for the design patterns featured
Book Description
----------------
With the increasing focus on optimized software architecture and
design it is important that software architects think about
optimizations in object creation, code structure, and interaction
between objects at the architecture or design level. This makes
sure that the cost of software maintenance is low and code can be
easily reused or is adaptable to change. The key to this is
reusability and low maintenance in design patterns.
Building on the success of the previous edition, Learning Python
Design Patterns, Second Edition will help you implement
real-world scenarios with Python's latest release, Python v3.5.
We start by introducing design patterns from the Python
perspective. As you progress through the book, you will learn
about Singleton patterns, Factory patterns, and Facade patterns
in detail. After this, we'll look at how to control object access
with proxy patterns. It also covers observer patterns, command
patterns, and compound patterns.
By the end of the book, you will have enhanced your professional
abilities in software architecture, design, and development.
What you will learn
-------------------
* Enhance your skills to create better software architecture
* Understand proven solutions to commonly occurring design issues
* Explore the design principles that form the basis of software
design, such as loose coupling, the Hollywood principle and the
Open Close principle among others
* Delve into the object-oriented programming concepts and find
out how they are used in software applications
* Develop an understanding of Creational Design Patterns and the
different object creation methods that help you solve issues in
software development
* Use Structural Design Patterns and find out how objects and
classes interact to build larger applications
* Focus on the interaction between objects with the command and
observer patterns
* Improve the productivity and code base of your application
using Python design patterns
About the Author
----------------
Chetan Giridhar is a technology leader, open source enthusiast,
and Python developer. He has written multiple articles on
technology and development practices in magazines such as
LinuxForYou and Agile Record, and has published technical papers
in the Python Papers journal. He has been a speaker at PyCon
conferences such as PyCon India, Asia-Pacific, and New Zealand
and loves working on real-time communications, distributed
systems, and cloud applications. Chetan has been a reviewer at
Packt Publishing and has contributed to books on IPython
Visualizations and Core Python.
Table of Contents
-----------------
* Introduction to Design Patterns
* The Singleton Design Pattern
* The Factory Pattern – Building Factories to Create Objects
* The Facade Pattern – Being Adaptive with Facade
* The Proxy Pattern – Controlling Object Access
* The Observer Pattern – Keeping Objects in the Know
* The Command Pattern – Encapsulating Invocation
* The Template Method Pattern – Encapsulating Algorithm
* Model-View-Controller – Compound Patterns
* The State Design Pattern
* AntiPatterns