Java's interesting insights into 23 design patterns