Traditional Design Patterns

Q01: Is a precise vocabulary currently available for software developers to utilize patterns

effectively?

Q02: Do you know Multiple Patterns exist for the Same Problem?

[11] Chasing an Elusive Vocabulary: Importance of Vocabulary in Pattern

Development [1, 2]

[11] Chasing an Elusive Vocabulary: Importance of Vocabulary in Pattern Development

Professor Dr. M.E. Fayad, SJSU, AITG, AEEH PRESS, i-SOLE, INCs

Loving your language means a command of its vocabulary beyond the level of the everyday. John McWhorter [3]

One of the specific benefits of using patterns resides in developing a common vocabulary by which software and pattern developers, in any development phase, can easily communicate and discuss their project concepts. Such a common vocabulary simplifies the basic description of complex systems. One can discuss the system at a higher level of abstraction without getting into the details of each pattern.

However, no clear vocabulary currently exists that can allow pattern developers to enjoy these perceived benefits. The main challenge here is the fact that many current patterns try to address the same problem (refer to the discussion of the two problems in the pitfalls #2 & #3 [1 & 2]: Multiple Patterns for the Same Problem, and Which Pattern Shall We Choose [2]. Thus,

For instance, assume that someone has already developed a new pattern called Observer that does the same thing the Observer pattern as described by Gamma, et al, (popularly referred to as the Gang of Four or GOF) [4] does. Thus, referring to a pattern as Observer is confusing. The GOF Observer pattern needs thorough reference since there is no reason to assume the GOF pattern, by just stating the name Observer. In an analysis, the same problem still exists. The Account pattern discussed previously in the earlier issue must also to be qualified to communicate clearly, which Account pattern is used currently.

Choosing the name of the pattern is another immediate challenge that needs consideration. Most of the patterns existing today have some vague names (due to high levels of abstraction), and in most cases, understanding what this pattern does in practice, is not clear until the first few lines in its template have been read. The most useful pattern name provides some useful insight into the problem currently addressed by the pattern.

References

[1] M.E. Fayad. Stable Design Patterns (SDPs) (BASE)” Aeeh Press, Inc, San Jose, CA. December 2024. Chapter 02, Pitfalls #2 & #3

[2] M. E. Fayad. “Stable Design Patterns for Software and Systems” Boca Raton, FL: Auerbach Publications, Taylor & Francis Catalog #: K24656, September 2017. ISBN-13: 978-1-4987-0330-7, Chapter 02, Pitfalls #2 & #3

[3] John Hamilton McWhorter V is an American linguist with a specialty in creole languages, sociolects, Wiki.

[4] Gamma, E. et al., Design Patterns: Elements of Reusable Object-Oriented Software Addison-Wesley Professional Computing Series. Addison-Wesley Publishing Company, New York, 1995.