Implementations of major software design pattern in Java