Errata: August 23, 2019

Thank you for purchasing Dependency Injection Principles, Practices, and Patterns. Please add errrors not listed below to the LiveBook Errata thread. We'll update this list as necessary. Thank you!



Inside front cover, the terminology map

The terminology map is missing its title: Glossary conceptual map

The terminology map is missing its caption:

"This figure maps out how the important concepts and terms in this book relate to each other, and provides a reference to the chapters where they're covered. There's also a Glossary in the back of the book with one-sentence descriptions of each term."

The circle "Object Lifetime (ch. 8)" is incorrectly drawn with a shade. It should have been drawn as all other cicles in the map.

In chapter 3, page 68, section 3.1.2

The word "pursuit" in the last paragraph of the "Dependency Inversion Principle" section should have been "pursue."

In chapter 4, page 89, section 4.1.3

The first annotation of listing 4.3 points at the class identifier (line 1). It should point at the constructor (line 3).

In chapter 4, page 106, section 4.3.2

Footnote 9 incorrectly contains the same text as footnote 17. It should be: ibid. because it's the same as the previous footnote (8): Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software (Addison-Wesley, 2004).

In chapter 6, page 192, section 6.3.1

Listing 6.24 contains an incorrect method argument named changedEntity. It should be:

public void Append(Entity entity)

In chapter 9, page 288, section 9.1.2

Listing 9.1 contains an incorrect constructor named AuditingProductRepository. It should be named: AuditingUserRepositoryDecorator.

In chapter 9, page 296, section 9.2.1

The second code snippet in the "A more compact ICircuitBreaker" sidebar misses a return keyword. It should be:

public IEnumerable<Product> GetAll()
{
    return this.breaker.Execute(() => this.decoratee.GetAll());
}

In chapter 10, page 325, section 10.3.3

The service field of listing 10.14 is missing the private keyword. It should be:

private readonly ICommandService<AdjustInventory> service;

In chapter 10, page 335, section 10.3.4

The word "he" in the annotation of listing 10.21 should have been "the:" "Wraps the decoratee parameter in the list of Decorators."

In chapter 10, page 336, section 10.3.4:

The last code snippet and the last paragraph of section 10.3.4 should have been separated with a callout stating:

NOTE: Chapter 12 demonstrates how to Auto-Register ICommandService<TCommand>> implementations and apply Decorators using a DI Container.

This callout was unfortunately merged into the last paragraph.

In chapter 10, page 337, section 10.3.5

The word "developers" in second paragraph should have been "developer:" "Your job as software developer is to find the sweet spot."