Android's VelocityTracker does not use a constructor, but rather if the object reference is null, you use variableName = VelocityTracker.obtain(). I have never seen something like this in Java before. Is this a standard design pattern, and why is it used?
            Asked
            
        
        
            Active
            
        
            Viewed 1,270 times
        
    0
            
            
         
    
    
        Taylor Kline
        
- 908
- 3
- 9
- 30
- 
                    Factory method, it returns an instance as opposed to using constructor – Brandon Ling Jun 15 '15 at 18:08
- 
                    possible duplicate of [What are static factory methods in Java?](http://stackoverflow.com/questions/929021/what-are-static-factory-methods-in-java) – David Jun 15 '15 at 18:17
1 Answers
2
            It's a factory method. (At least) in Android, obtain() is a conventional method name for classes that implement recycling under the hood. They usually come with a recycle() method that you run on an object when you no longer need it (another good example is Message). That is, they keep track of a pool of objects and, whenever there comes a need for a new object, you call obtain() which may return an already created instance instead of allocating memory for a new one.
 
    
    
        SqueezyMo
        
- 1,606
- 2
- 21
- 34