I will prefer using static method as less as possible... there is some side effect you are not expected, like, are you sure it thread safe? static method easier to have thread problem. You may take a look at http://debasishg.blogspot.com/2007/03/making-classes-unit-testable.html , http://www.beust.com/weblog/archives/000173.html and http://discuss.joelonsoftware.com/default.asp?pg=pgDiscussThread&ixDiscussTopicParent=7972&ixDiscussGroup=3&cReplies=29 Parameter passing vs static accessor: Should I press things around or get from public static instance? - http://groups.yahoo.com/group/refactoring/message/3342 Reason of static method is not overrided - http://groups.google.com/group/comp.lang.java.programmer/browse_thread/thread/ec8b924d60dd4734/99b488aa1f8106c9 Another example of thread problem with static member - http://jroller.com/page/dschneller?entry=calendar_dateformat_and_multi_threading How to mock static method code for testing - http://blog.xebia.com/2007/06/21/mocking-static-calls/ http://googletesting.blogspot.com/2008/12/static-methods-are-death-to-testability.html Factory is bad? - http://www.yegor256.com/2017/11/14/static-factory-methods.html