Another example, based on example explained in the book "Navrhove vzory" (Design patterns) from Rudolf Pecionvsky . I have re-made this example just to somehow get more familiar with this design pattern (or better idiom). The "crate" is used to store the set/list of object in one place, so that the moving (passing) these objects is easier. The example from the book is very easy, and helps to understand, how this design pattern could be applied to som very usefull application (e.g. day planner) Code example: package com.sim.crate.common; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; /** * The Day Plan class demonstrates the usage of crate to create simple day plan, with items that do not collide. * @author shimon * */ public class DayPlan { private final List actions = new ArrayList (); /** * Tries to add an item to the day plan with entered start, end time and duration. Returns true, if * the try was successf...