이 글은 Intellij의 Refactoring 메뉴에 있는 모든 Refactoring 기능들을 jetbrains 사이트의 예제 및 일부 보완한 예제를 통해 리팩토링시 주의 사항이나 전후를 비교한다. com.example.refactorings.RefactoringTest 의 각 테스트를 따라서 보면서 화면과 같이 변화가 일어나도록 진행하면 됨
- Change Signature
- Convert Anonymous to Inner Class
- Convert to Instance Method
- Encapsulate Fields
- Introduce Constants
- Introduce Field
- Extract Interface
- Extract Method
- Extract Super Class
- Introduce Variable
- introduce parameter
- Extract Delegate
- Replace Method with Method Object
- Replace Conditional Logic with Strategy Pattern
- Generify
- Inline Constructor
- Inline Superclass
- Inline To Anonymous Class
- Invert Boolean
- Make Static
- Migrate
- Copy Class
- Move Method
- Pull Members Up
- Remove Middleman
- Replace Constructor with Builder
- Replace Constructor with Factory Method
- Replace Inheritance with Delegation
- Replace Temp with Query
- Type Migration
- Wrap Return Value
- Cage 클래스의 생성자에 height를 추가
- new나 생성자(Int())에 커서를 위치시키고 리팩토링
- 메소드명에 커서를 위치시키고 리팩토링
- 필드명에 커서를 위치시키고 리팩토링
- 변수(“string”)에 커서를 위치시키고 리팩토링
- 변수(anotherClass.intValue())를 선태하고 리팩토링
- Replace Method with Method Object
- Generalize Algorithm
- Extract methods and implement them by copy & paste
- Create Factory Method
- Create Subclasses by Show Context Actions
- Push Members Down
- Remove Unused code using coverage
- 레퍼런스 타입이 없는 경우는 static으로 변환 후 이동