fix bug:State pattern
add state pattern diagram
add state pattern diagram
add visitor pattern
add travis config