Modern Software Design Patterns and Principles

In the previous chapter, object-oriented programming (OOP) was discussed in preparation for exploring different patterns. As many patterns rely on concepts in OOP, it is important to introduce and/or revisit these concepts. Inheritance between classes allows us to define an is-a-type-of relationship. This provides a higher degree of abstraction. For example, with inheritance it is possible to perform comparisons such as a cat is a type of animal and a dog is a type of animal. Encapsulation provides a way of controlling the visibility and access of details of a class. Polymorphism provides the ability to handle different objects using the same interface. With OOP, a higher level of abstraction can be achieved, providing a more manageable and understandable way to deal with large solutions.

This chapter catalogs and introduces different patterns used in modern software development. This book takes a very broad view of what a pattern is. A pattern in software development is any solution to a general problem that software programmers face during development. They are built from experience on what works and what does not. Also, these solutions are trialed and tested by numerous developers in various situations. The benefit of using a pattern is based on this past activity both in not repeating the effort and in the assurance that the problem will be solved without introducing a defect or issue.

Especially when taking technology-specific patterns into consideration, there are too many to cover in a single book so this chapter will highlight specific patterns to illustrate different types of pattern. We have tried to pick out the commonest and most influential patterns based on our experience. In subsequent chapters, specific patterns will be explored in more detail.

The following topics will be covered in this chapter:

  • Design principles, including SOLID
  • Pattern catalogs, including Gang of Four (GoF) patterns and Enterprise Integration Pattern (EIP)
  • Software development life cycle patterns
  • Patterns and practices for solution development, cloud development, and service development
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.128.79.88