Scala Design Patterns
eBook - ePub

Scala Design Patterns

Ivan Nikolov

Buch teilen
  1. 382 Seiten
  2. English
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Scala Design Patterns

Ivan Nikolov

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Write efficient, clean, and reusable code with Scala

About This Book

  • Unleash the power of Scala and apply it in the real world
  • Increase your efficiency by leveraging the power of Creational, Structural, Behavioural, and Functional design patterns
  • Build object oriented and functional applications quickly and effectively

Who This Book Is For

If you want to increase your understanding of Scala and apply it to real-life application development, then this book is for you. We've also designed the book to be used as a quick reference guide while creating applications. Previous Scala programming knowledge is expected.

What You Will Learn

  • Immerse yourself in industry-standard design patterns—structural, creational, and behavioral—to create extraordinary applications
  • Feel the power of traits and their application in Scala
  • Implement abstract and self types and build clean design patterns
  • Build complex entity relationships using structural design patterns
  • Create applications faster by applying functional design patterns

In Detail

Scala has become increasingly popular in many different IT sectors. The language is exceptionally feature-rich which helps developers write less code and get faster results. Design patterns make developer's lives easier by helping them write great software that is easy to maintain, runs efficiently and is valuable to the company or people concerned.

You will learn about the various features of Scala and be able to apply well-known, industry-proven design patterns in your work. The book starts off by focusing on some of the most interesting features of Scala while using practical real-world examples. We will also cover the popular "Gang of Four" design patterns and show you how to incorporate functional patterns effectively. By the end of this book, you will have enough knowledge and understanding to quickly assess problems and come up with elegant solutions.

Style and approach

The design patterns in the book will be explained using real-world, step-by-step examples. For each design pattern, there will be hints about when to use it and when to look for something more suitable. This book can also be used as a practical guide, showing you how to leverage design patterns effectively.

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Scala Design Patterns als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Scala Design Patterns von Ivan Nikolov im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatique & Programmation orientée objet. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
2016
ISBN
9781785882500

Scala Design Patterns


Table of Contents

Scala Design Patterns
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. The Design Patterns Out There and Setting Up Your Environment
Design patterns
Scala and design patterns
The need for design patterns and their benefits
Design pattern categories
Creational design patterns
The abstract factory design pattern
The factory method design pattern
The lazy initialization design pattern
The singleton design pattern
The object pool design pattern
The builder design pattern
The prototype design pattern
Structural design patterns
The adapter design pattern
The decorator design pattern
The bridge design pattern
The composite design pattern
The facade design pattern
The flyweight design pattern
The proxy design pattern
Behavioral design patterns
The value object design pattern
The null object design pattern
The strategy design pattern
The command design pattern
The chain of responsibility design pattern
The interpreter design pattern
The iterator design pattern
The mediator design pattern
The memento design pattern
The observer design pattern
The state design pattern
The template method design pattern
The visitor design pattern
Functional design patterns
Monoids
Monads
Functors
Scala-specific design patterns
The lens design pattern
The cake design pattern
Pimp my library
Stackable traits
The type class design pattern
Lazy evaluation
Partial functions
Implicit injection
Duck typing
Memoization
How to choose a design pattern
Setting up the development environment
Installing Scala
Scala IDEs
Dependency management
SBT
Maven
SBT versus Maven
Summary
2. Traits and Mixin Compositions
Traits
Traits as interfaces
Mixing in traits with variables
Traits as classes
Extending classes
Extending traits
Mixin compositions
Mixing traits in
Composing
Composing simple traits
Composing complex traits
Composing with self types
Clashing traits
Same signatures and return types traits
Same signatures and different return types traits
Same signatures and return types mixins
Same signatures and different return types mixins
Multiple inheritance
The diamond problem
The limitations
Linearization
Rules of inheritance hierarchies
Linearization rules
How linearization works
Initialization
Method overriding
Testing traits
Using a class
Mixing the trait in
Mixing into the test class
Mixing into the test cases
Running the tests
Traits versus classes
Summary
3. Unification
Functions and classes
Functions as classes
Function literals
Functions without syntactic sugar
Increased expressivity
Algebraic data types and class hierarchies
ADTs
Sum ADTs
Product ADTs
Hybrid ADTs
The unification
Pattern matching
Pattern matching with values
Pattern matching for product ADTs
Modules and objects
Using modules
Summary
4. Abstract and Self Types
Abstract types
Generics
Abstract types
Generics versus abstract types
Usage advice
Polymorphism
Subtype polymorphism
Parametric polymorphism
Ad hoc polymorphism
Adding functions for multiple types
Self types
Using self types
Requiring multiple components
Conflicting components
Self types and the cake design pattern
Self types versus inheritance
Inheritance leaks functionality
Summary
5. Aspect-Oriented Programming and Components
Aspect-oriented programming
Chapter case example
Without AOP
With AOP
Components in Scala
Scala is rich
Implementing components
Self types for components
Summary
6. Creational Design Patterns
What are creational design patterns?
The factory method design pattern
Class diagram
Code example
Scala alternatives
What is it good for?
What is it not so good for?
The abstract factory
Class diagram
Code example
Scala alternatives
What is it good for?
What is it not so good for?
Other factory design patterns
The static factory
The simple factory
Factory combinations
Lazy initialization
Class diagram
Code example
What is it good for?
What is it not so good for?
The singleton design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
The builder design pattern
Class diagram
Code example
Java-like implementation
Implementation with a case class
Using generalized type constraints
Changing the Person class
Changing the PersonBuilder class
Adding generalized type constraints to the required methods
Using the type-safe builder
Using require statements
What is it good for?
What is it not so good for?
The prototype design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
Summary
7. Structural Design Patterns
What are structural design patterns?
The adapter design pattern
Class diagram
Code example
The adapter design pattern with final classes
The adapter design pattern the Scala way
What is it good for?
What is it not so good for?
The decorator design pattern
Class diagram
Code example
The decorator design pattern the Scala way
What is it good for?
What is it not so good for?
The bridge design pattern
Class diagram
Code example
The bridge design pattern the Scala way
What is it good for?
What is it not so good for?
The composite design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
The facade design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
The flyweight design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
The proxy design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
Summary
8. Behavioral Design Patterns – Part 1
What are behavioral design patterns?
The value object design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
The null object design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
The strategy design pattern
Class diagram
Code example
The strategy design pattern the Scala way
The command design pattern
Class diagram
Code example
The command design pattern the Scala way
What is it good for?
What is it not so good for?
The chain of responsibility design pattern
Class diagram
Code example
The chain of responsibility design pattern the Scala way
What is it good for?
What is it not so good for?
The interpreter design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
Summary
9. Behavioral Design Patterns – Part 2
The iterator design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
The mediator design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
The memento design pattern
Class diagram
Code example
What is it good for?
What is it not so good for?
...

Inhaltsverzeichnis