Rewrite the documentation with an academic tone and references - #27
Merged
Merged
Conversation
The main README now describes the project as teaching material: a categorised catalogue of the patterns, the design of the host application and how examples are discovered and displayed, the build and quality gates including both CI services, a step-by-step guide to adding an example, the documentation conventions each pattern README follows, and a pointer to the companion java-monitor-example project. Each pattern README follows the same outline adapted from Gamma et al.: intent, motivation, structure, a participants table mapping the canonical roles to the classes in the package, the example's expected output, consequences, related patterns and numbered references. The Singleton README documents why the textbook lazy initialisation is not thread-safe and the correct Java alternatives; the Producer/Consumer README traces the problem to Dijkstra, Hoare and Brinch Hansen and explains how BlockingQueue realises a monitor, linking to the companion project for the hand-written version. Also fixes two typos in log output: "ConcretepProduct" and "Instanciating". Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Documentation pass over the whole repository.
Main README
OutputSink, configuration binding, constructor injection, threadingPattern READMEs (11)
Each follows the same outline adapted from Gamma et al.: intent (quoted with page reference), motivation, structure (existing diagram and PlantUML kept), participants table mapping canonical roles to the classes in the package, the example's expected output, consequences, related patterns, numbered references. Notable additions:
LinkedBlockingDequerealises a monitor, and links to java-monitor-example for the hand-writtensynchronized/wait/notifyAllversionGenericProductto the Creator rolePropertyChangeSupport, the deprecation ofjava.util.Observable, and the suppressed-event subtlety the test works aroundCode
Verification
./mvnw clean verifygreen, 39 tests🤖 Generated with Claude Code