만세! 한국어 버전이 드디어 출시되었습니다! 피드백을 공유하거나 오류를 보고하려면 메시지를 보내주세요.

Pull Up Field

Problem

Two classes have the same field.

Solution

Remove the field from subclasses and move it to the superclass.

Before
Pull Up Field - Before
After
Pull Up Field - After

Why Refactor

Subclasses grew and developed separately, causing identical (or nearly identical) fields and methods to appear.

Benefits

  • Eliminates duplication of fields in subclasses.

  • Eases subsequent relocation of duplicate methods, if they exist, from subclasses to a superclass.

How to Refactor

  1. Make sure that the fields are used for the same needs in subclasses.

  2. If the fields have different names, give them the same name and replace all references to the fields in existing code.

  3. Create a field with the same name in the superclass. Note that if the fields were private, the superclass field should be protected.

  4. Remove the fields from the subclasses.

  5. You may want to consider using Self Encapsulate Field for the new field, in order to hide it behind access methods.