Name for this antipattern? Fields as local variables

Posted by JSB???? on Programmers See other posts from Programmers or by JSB????
Published on 2012-08-31T14:25:52Z Indexed on 2012/08/31 15:52 UTC
Read the original article Hit count: 145

In some code I'm reviewing, I'm seeing stuff that's the moral equivalent of the following:

public class Foo
{
    private Bar bar;

    public MethodA()
    {
        bar = new Bar();
        bar.A();
        bar = null;
    }

    public MethodB()
    {
        bar = new Bar();
        bar.B();
        bar = null;
    }
}

The field bar here is logically a local variable, as its value is never intended to persist across method calls. However, since many of the methods in Foo need an object of type Bar, the original code author has just made a field of type Bar.

  1. This is obviously bad, right?
  2. Is there a name for this antipattern?

© Programmers or respective owner

Related posts about object-oriented

Related posts about terminology