Free Programming E-Books
Free download ebooks on computer and programming | |||
Free Ebook "PHP 5 Objects, Patterns, and Practice" Sample Chapter
PHP5 Objects Patterns & Practice
Download chapter
Free download Chapter 8: Some Pattern Principles PHP 5 Objects, Patterns, and Practice is a practical design and management book devoted to exploring object-oriented programming in PHP 5, the latest and most powerful version of PHP. Using a wide variety of pattern examples, this insightful text explores the principles underlying design patterns, focusing largely on those patterns collected by the "Gang of Four." Veteran author Matt Zandstra further addresses the needs of PHP users by providing practice and examples on topics including unit testing, documentation, version control, and automated building. Some Pattern PrinciplesAlthough design patterns simply describe solutions to problems, they tend to emphasize solutions that promote reusability and flexibility. To achieve this, they manifest some key object-oriented design principles. We will encounter some of them in this chapter and in more detail throughout the rest of the book. This chapter will cover
The Pattern RevelationI first started working in an object-oriented context using the Java language. As you might expect, it took a while before some concepts clicked. When it did happen, though, it happened very fast, almost with the force of revelation. The elegance of inheritance and encapsulation bowled me over. I could sense that this was a different way of defining and building systems. I "got" polymorphism, working with a type and switching implementations at runtime. All the books on my desk at the time focused on language features and the very many APIs available to the Java programmer. Beyond a brief definition of polymorphism, there was little attempt to examine design strategies. Language features alone do not engender object-oriented design. Although my projects fulfilled their functional requirements, the kind of design that inheritance, encapsulation, and polymorphism had seemed to offer continued to elude me. My inheritance hierarchies grew wider and deeper as I attempted to build new classes for every eventuality. The structure of my systems made it hard to convey messages from one tier to another without giving intermediate classes too much awareness of their surroundings, binding them into the application and making them unusable in new contexts. It wasn't until I discovered Design Patterns, otherwise known as the Gang of Four book, that I realized I had missed an entire design dimension. By that time I had already discovered some of the core patterns for myself, but others contributed to a new way of thinking. Composition and InheritanceInheritance is a powerful way of designing for changing circumstances or contexts. It can limit flexibility, however, especially when classes take on multiple responsibilities. DecouplingWe saw in Chapter 6 that it makes sense to build independent components. A system with highly interdependent classes can be hard to maintain. A change in one location can require a cascade of related changes across the system. | |||