layout: pattern title: Trampoline folder: trampoline permalink: /patterns/trampoline/ categories: Behavioral tags: – Performance Intent Trampoline pattern is used for implementing algorithms recursively in Java without blowing the stack and to interleave the execution of functions without hard coding them together It is possible by representing a computation in one of 2 states : done | […]


layout: pattern title: Tolerant Reader folder: tolerant-reader permalink: /patterns/tolerant-reader/ categories: Integration tags: – Decoupling Intent Tolerant Reader is an integration pattern that helps creating robust communication systems. The idea is to be as tolerant as possible when reading data from another service. This way, when the communication schema changes, the readers must not break. Class […]


layout: pattern title: Thread Local Storage folder: tls permalink: /patterns/tls/ categories: Idiom tags: – Performance Intent Securing variables global to a thread against being spoiled by other threads. That is needed if you use class variables or static variables in your Callable object or Runnable object that are not read-only. Class diagram Applicability Use the […]


layout: pattern title: Throttling folder: throttling permalink: /patterns/throttling/ categories: Behavioral tags: – Performance Intent Ensure that a given client is not able to access service resources more than the assigned limit. Class diagram Applicability The Throttling pattern should be used: When a service access needs to be restricted to not have high impacts on the […]


layout: pattern title: Thread Pool folder: thread-pool permalink: /patterns/thread-pool/ categories: Concurrency tags: – Performance Intent It is often the case that tasks to be executed are short-lived and the number of tasks is large. Creating a new thread for each task would make the system spend more time creating and destroying the threads than executing […]


layout: pattern title: Template method folder: template-method permalink: /patterns/template-method/ categories: Behavioral tags: – Gang of Four Intent Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure. To make sure that subclasses don’t override the template […]


layout: pattern title: Subclass Sandbox folder: subclass-sandbox permalink: /patterns/subclass-sandbox/ categories: Behavioral tags: – Game programming Intent The subclass sandbox pattern describes a basic idea, while not having a lot of detailed mechanics. You will need the pattern when you have several similar subclasses. If you have to make a tiny change, then change the base […]


layout: pattern title: Strategy folder: strategy permalink: /patterns/strategy/ categories: Behavioral tags: – Gang of Four Also known as Policy Intent Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Class diagram Applicability Use the Strategy pattern when Many related classes differ […]


layout: pattern title: Step Builder folder: step-builder permalink: /patterns/step-builder/ categories: Creational tags: – Instantiation Intent An extension of the Builder pattern that fully guides the user through the creation of the object with no chances of confusion. The user experience will be much more improved by the fact that he will only see the next […]


layout: pattern title: State folder: state permalink: /patterns/state/ categories: Behavioral tags: – Gang of Four Also known as Objects for States Intent Allow an object to alter its behavior when its internal state changes. The object will appear to change its class. Class diagram Applicability Use the State pattern in either of the following cases […]