전역 데이터(Global Data)

박상훈·2022년 8월 9일
0
아무곳에서나 변경될 수 있다는 문제
어떤 코드로 인해 값이 변경되는지 파악하기 어려움
클래스 변수 (필드)도 비슷한 문제를 겪음

변수 캡슐화하기(Encapsulate Variable)

  • 메서드는 점진적으로 새로운 메서드로 변경할 수 있으나 데이터는 한번에 모두 변경
  • 데이터 구조를 변경하는 작업을 더 수월한 메서드 구조 변경 작업으로 대체 가능
  • 데이터가 사용되는 범위가 크면 캡슐화가 중요
    • 값의 변경을 함수를 통해 검증 로직을 추가하거나 변경에 따른 후속 작업을 추가하는 것이 편리
  • 불변 데이터인 경우 불필요

public static 을 사용하는 변수들의 접근제한자를 private 으로 변경하고 getter, setter 생성

before

class Refactoring {
    public static Integer targetTemperature = 70;
    public static Boolean heating = true;
    public static Boolean cooling = false;
    public static Boolean fahrenheit = true;
}

after

class Refactoring {
    private static Integer targetTemperature = 70;
    private static Boolean heating = true;
    private static Boolean cooling = false;
    private static Boolean fahrenheit = true;
    
    // ... getter, setter 생성
}
profile
엔지니어

0개의 댓글