A Functional Pattern System for Object-Oriented Design
Book Details
| Author | Thomas Kühne |
| Publisher | Kovac |
| Published | 1999 |
| Edition | 1st |
| Paperback | 346 pages |
| Language | English |
| ISBN-13 | 9783860647707 |
| ISBN-10 | 3860647709 |
| License | Open Access |
Book Description
This book integrates the vital areas of object-orientation, functional programming, design patterns, and language design. The most important concepts from functional programming are captured with six design patterns: FUNCTION OBJECTS (Black-box behaviour parameterisation) LAZY OBJECTS (Evaluation-by-need semantics) VALUE OBJECTS (Immutable values) VOID OBJECTS (Abandoning null references) TRANSFOLD (Combining internal & external iteration) TRANSLATOR (Homomorphic mapping with generic functions). These patterns can be used with any object-oriented language to advance software design. The patterns form a system, i.e., a collaborating set of patterns.
In their "Related Patterns" sections the patterns refer to each other and to many other published design patterns. Each of the relevant areas (object-orientation, functional programming, design patterns) is introduced in the first part of the book. This part also compares the functional and object-oriented paradigms both in terms of concepts and on a calculus level. The second part presents the functional pattern system. This system should be beneficial to software practitioners since it integrates the functional paradigm into object-oriented software design. Hence, advantages which have been primarily available in functional languages can be used in object-oriented languages as well. Even when some functional concepts have been partially established in object-oriented software already, they can now be understood as specialised uses of more general function patterns. This practical aspect is complemented by a theoretical account of multi-paradigm language design. An evaluation of the pattern system for its implications on language design in the third part is concluded by proposing a new distribution of responsibilities between languages and their environments.
The book uses the Eiffel programming language to illustrate the patterns with running sample code. It includes a critical review of the Eiffel language in terms of its suitability as a functional pattern implementation language.
This book is published as open-access, which means it is freely available to read, download, and share without restrictions.
If you enjoyed the book and would like to support the author, you can purchase a printed copy (hardcover or paperback) from official retailers.
Download and Read Links
Share this Book
[localhost]# find . -name "*Similar_Books*"
The Basics of User Experience Design
This online book is intended for those looking to gain an introduction into the world of user experience (UX) design or to freshen up their knowledge of the field. The author notes that the sheer number of topics covered in UX design is mind-boggling, citing interaction design, design thinking, and usability as just a few examples, which is what ma
Cloud Design Patterns
Cloud applications have a unique set of characteristics. They run on commodity hardware, provide services to untrusted users, and deal with unpredictable workloads. These factors impose a range of problems that you, as a designer or developer, need to resolve. Your applications must be resilient so that they can recover from failures, secure to pro
Modern Java EE Design Patterns
With the ascent of DevOps, microservices, containers, and cloud-based development platforms, the gap between state-of-the-art solutions and the technology that enterprises typically support has greatly increased. But as Markus Eisele explains in this O'Reilly report, some enterprises are now looking to bridge that gap by building microservice-based
Efficient Learning Machines
Machine learning techniques provide cost-effective alternatives to traditional methods for extracting underlying relationships between information and data and for predicting future events by processing existing information to train models. Efficient Learning Machines explores the major topics of machine learning, including knowledge discovery, cla
Data Protection for the Hybrid Cloud
If you are responsible for architecting and designing the backup strategy for your organization, especially if you're looking for ways to incorporate cloud backup into your business continuity scenarios, this book is for you. With the increasing trends in virtualization as well as the move to the pubic cloud, IT organizations are headed toward a wo
Tutorials of Visual Graphic Communication Programs for Interior Design
This open book is for the beginning level of both architecture and interior design students who learn computer graphic communication software. The author developed multiple tutorials to teach three computer graphic applications, AutoCAD, Revit, and Enscape. AutoCAD is an essential computer drafting software which is 2D drawing software. Revit is a