I personally like to declare everything in final and immulatable so that it give me feel it more safe (e.g.: variable won't be replace with other value unexpected; method won't be override unexpected). The following is some discussion, see if you interested.