Replace Static Variable with Parameter


Refactoring contributed by Marian Vittek


A function depending on a static variable needs to be reused in more general context.

Add a new parameter to the function and replace all references of the static variable within the function by this new parameter.



void printValues() {
        for (int i = 0; i < people.length; i++) {
                System.out.println(people[i].name+" has salary "+people[i].salary);
        }
}

public static void main(String args[]) {
        ...
        printValues();
}




void printValues(PrintStream outfile) {
        for (int i = 0; i < people.length; i++) {
                outfile.println(people[i].name+" has salary "+people[i].salary);
        }
}

public static void main(String args[]) {
        ...
        printValues(System.out);
}

Motivation

The original function is using a static variable, but you wish either to reuse the function in new project (not containing the static variable) or reuse the function in the same project but in more general context.

Mechanics

  • If the function calls other functions using the static variable in question, then use this refactoring on all those invoked functions first.

  • Use Add Parameter to add a new argument to the function

  • Add the static variable as actual argument to all callers of this function in.

  • Replace all references to the static variable within the function by the new argument





***** 아름다운프로님에 의해서 게시물 복사 + 카테고리변경되었습니다 (2003-12-18 17:27)
Posted by 아름프로
BLOG main image

카테고리

분류 전체보기 (539)
이야기방 (19)
토론/정보/사설 (16)
IBM Rational (9)
U-IT (0)
SOA/WS/ebXML (110)
개발방법론/모델링 (122)
J2SE (34)
J2EE (60)
DataBase (39)
Open Projects (30)
BP/표준화 (50)
Apache Projects (15)
Web/보안/OS (22)
Tools (7)
AJAX/WEB2.0 (1)
Linux/Unix (1)
영어 (0)
비공개방 (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

글 보관함

Total :
Today : Yesterday :