[JAVA] Abstract Factory, Bridge, Memento, Observer Pattern