TOP

리팩토링이란 무엇입니까?

설명

리팩토링 (Refactoring) – 외부 동작을 변경하지 않고도 더 쉽게 이해하고 더 빠르게 수정할 수 있도록 소프트웨어(소프트웨어)의 내부 구조를 변경했습니다. 또한 소프트웨어의 외부 동작을 변경하지 않고 일련의 리팩토링을 적용하여 소프트웨어를 재구성하는 것입니다.


리팩토링의 장점:

리팩토링을 수행해야 하는 경우:

코드에서 나쁜 냄새가 난다 (Smells Catalog) :

가능한 리팩토링 옵션

  1. Moving Features Between Objects (강체 간 하이다 하다):

    • Move Method (메소드 가자) – 메소드가 너무 길거나 코드가 포함된 경우 별도의 메소드를 분리하세요.
    • Move Field (이동장) - 해당 필드가 정의된 위치보다 다른 클래스에서 더 자주 사용되는 경우 수행됩니다.
  2. Organizing Data (데이터 배열):

    • Encapsulate Field 캡슐 - OOP의 주요 원칙 중 하나는 캡슐화 또는 데이터 캡슐화입니다. 데이터를 공개함으로써 객체는 데이터 소유자 모르게 해당 값을 읽고 변경할 수 있습니다. 그러므로 우리는 그러한 분야를 닫고 접근 방식을 제공합니다.
    • Encapsulate Collection (수집캡슐) - 교실에는 종종 phọbon 모리이가 포함되어 있습니다. 이 컬렉션은 배열, 목록, 집합 또는 벡터일 수 있습니다. getter 메소드는 컬렉션 객체 자체를 반환해서는 안 됩니다. 클라이언트는 자신이 소유한 클래스에 대한 지식 없이도 컬렉션의 내용을 수정할 수 있기 때문입니다. 따라서 메소드가 반환하는 값을 읽기 전용으로 만들고 메소드를 추가/삭제하는 요소를 생성해야 합니다.
  3. Composing Methods (코드 추출 및 조합):

    • Extract Method (메소드 가자) – 그리고 화하수 재이 CODE 자다이 자이이 자이스트이스을 이리을은 목적을 설명하는 이름을 사용하여 별도의 메소드에 넣습니다. 따라서 메서드 이름이 주석을 대체합니다.
    • Inline Method (메소드 이베마) – 때로는 메서드 본문을 이를 호출하는 코드로 이동하는 것이 유용할 수 있습니다. 때때로 메소드 본문에는 메소드 이름 자체만큼 많은 설명이 필요합니다. 그 밖에도 여러 가지 방법이 있어서 구조가 성공하지 못하는 상황이 있을 수 있으므로 공통된 하나의 방법으로 모두 결합한 후 다른 방법으로 분리하는 것이 좋습니다.
    • Inline Temp (임시 다양한 insert) – 단순 표현식은 한 번만 할당된 임시 변수를 대체합니다. 때때로 이러한 변수는 다른 리팩토링을 방해합니다.
    • Replace Temp with Query (임시 다양한 마이스 보리로 자다) – 임시변수를 이용하여 수식의 값을 저장할 때 사용된다. 이 경우 표현식을 메소드로 변경하십시오.
    • Split Temporary Variable (임시 다양한 구분) – 하나의 임시 변수를 사용하여 여러 번 다른 결과를 할당하는 경우에 적용됩니다. (루프에서 사용되는 변수는 결과가 겹치는 변수가 아닙니다.) 이 경우 각 할당에 대해 별도의 변수를 만듭니다.
  4. Simplifying Conditional Expressions (设计他体育设计设计设计):

    • Decompose Conditional (设计设计안전성) – 아리부 하이스 지이(if-then-else)이 자이 나의 무게이다. 조건(if), then, else의 일부를 별도의 메소드로 대체합니다. 이유의 분기를 이해하는 데 도움이 되며, 메소드 이름은 코드의 목적을 명확하게 해줍니다.
    • Consolidate Conditional Expression (设计介乐设计) - 여러 번 테스트를 수행하면 동일한 결과를 제공하는 조건이 수행됩니다. 모든 테스트는 단일 조건이나 방법으로 결합되어야 합니다.
    • Consolidate Duplicate Conditional 파편 – 조건의 모든 부분에 동일한 조각이 존재합니다. 이 코드 조각은 외부로 이동되어야 합니다.
    • Remove Control Flag (제어 플래그 제거) – 일련의 논리에서 제어 플래그 역할을 하는 변수가 있습니다. 대신 BREAK 또는 RETURN을 사용하세요.
    • Replace Conditional with Polymorphism (연산자를 조건식으로 바꾸세요) – 객체 유형의 동작은 운영자의 조건에 따라 달라집니다. 조건 연산자의 각 분기는 하위 클래스의 오버로드된 메서드로 이동되어야 합니다. 소스 코드