Ide Intellij - Refactoring Kode

Dalam bab ini, kita akan belajar tentang Pemulihan Kode dan cara kerjanya di IntelliJ. Refactoring kode adalah restrukturisasi kode tanpa mengubah fungsi dan kegunaannya. Pemfaktoran ulang kode dapat dilakukan untuk meningkatkan keterbacaan kode, kinerja, atau untuk menghapus fungsionalitas yang tidak digunakan / duplikat. IntelliJ menyediakan dukungan hebat untuk pemfaktoran ulang kode. Bab ini membahas berbagai tindakan pemfaktoran ulang kode.

Ganti nama

Ganti nama tindakan dapat digunakan untuk mengganti nama metode, parameternya, atribut kelas, variabel lokal, dan sebagainya. Mari kita buat kelas berikut di IntelliJ.

public class Employee {
   private String name;
   private String address;
   private int age;
   public Employee() {
      this("Jarvis", "Palo Alto", 35);
   }
   public Employee(String name, String address, int age) {
      this.name = name;
      this.address = address;
      this.age = age;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public String getAddress() {
      return address;
   }
   public void setAddress(String address) {
      this.address = address;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   
   @Override
   public String toString() {
      return "Employee{" +
      "name='" + name + '\'' +
      ", address='" + address + '\'' +
      ", age=" + age +
      '}';
   }
   public static void main(String args[]) {
      Employee e = new Employee();
      System.out.println(e);
   }
}

Sekarang, mari kita ganti namanya Employee kelas untuk Person. Tindakan ini akan melakukan modifikasi pada konstruktor danmain() metode -

  • Pilih Kata karyawan

  • Pergi ke Refactor → Rename dan ganti namanya dengan Person.

Ganti Duplikat Kode

Ini adalah salah satu tindakan refactoring yang ampuh. IntelliJ mengidentifikasi duplikat kode dan menggantinya dengan kode yang sesuai. Mari kita perkenalkan duplikasi kode dan refactornya. Ketik kode berikut di Editor -

public class Employee {
   private String name;
   private String address;
   private int age;
   public Employee() {
      this("Jarvis", "Palo Alto", 35);
   }
   public Employee(String name, String address, int age) {
      this.name = name;
      this.address = address;
      this.age = age;
   }
   public void setData(String name, String address,  int age) {
      this.name = name;
      this.address = address;
      this.age = age;
   }
   public void showEmployeeDetail() {
      System.out.println("Name = " + name + ", Address = " + address + ", Age = " + age);
   }
   public static void main(String args[]) {
      Employee e = new Employee();
      e.showEmployeeDetail();
   }
}

Dalam contoh ini, Karyawan (Nama string, Alamat string, int usia) konstruktor dan public void setData (Nama string, alamat String, intage) sama persis. Setelah melakukan refactoring, konstruktor Employee (String name, String address, int age) akan dimodifikasi sebagai berikut -

public Employee(String name, String address, int age) {
   setData(name, address, age);
}

Untuk mengganti duplikat -

  • Pergi ke Refactor → Temukan dan Ganti Duplikat Kode.

  • Pilih cakupan refactor dan ikuti langkah-langkah di layar untuk menyelesaikan tindakan.

Salin Refactoring

Di bagian ini, kita akan memahami cara menyalin satu kelas ke kelas lainnya. Mari kita salin kelas Karyawan ke kelas Person. Kita dapat menyalinnya ke modul yang sudah ada atau yang baru. IntelliJ akan melakukan perubahan yang diperlukan bergantung padanya. Ikuti langkah-langkah ini untuk melakukan pemfaktoran ulang salinan -

  • Pergi ke Refactor → Copy, itu akan membuka kotak dialog.

  • Masukkan nama baru dan paket tujuan.

  • Klik pada tombol OK dan itu akan melakukan yang diperlukan.

Pindahkan Refactoring

Pindah pemfaktoran ulang mirip dengan menyalin tetapi alih-alih membuat salinan lain, ia memindahkan kode ke paket lain atau menjadikannya sebagai kelas dalam dari kelas lain.

Ikuti langkah-langkah berikut untuk melakukan pemfaktoran ulang langkah -

  • Pergi ke, Refactor → Pindah.

  • Jendela baru akan muncul.

  • Pilih salah satu opsi sesuai pilihan Anda dan klik Refactor.

Hapus Aman

Tindakan Hapus Aman akan menghapus objek hanya jika tidak dirujuk di mana pun dalam proyek. Target untuk opsi ini dapat berupa kelas, antarmuka, metode, bidang, atau parameter.

Mari kita lihat ini beraksi. Ketik kode berikut di Editor -

public class HelloWorld {
   static void sayHello() {
      System.out.println("Hello, World !!!");
   }
   public static void main(String[] args) {
      sayHello();
   }
}

Ikuti langkah-langkah ini untuk melakukan tindakan hapus aman -

  • Pilih sayHello() metode.

  • Klik kanan padanya dan pilih Refactor → Safe Delete pilihan.

  • Saat metode sayHello () digunakan, itu akan menunjukkan kesalahan seperti pada tangkapan layar berikut -

Ubah Tanda Tangan

Tindakan tersebut mengubah tanda tangan metode. Itu dapat mengubah nama metode, parameternya, jenisnya, nilai yang dikembalikan dan sebagainya. Mari kita ambil metode dari contoh di atas dan ubah tanda tangannya.

Ikuti langkah-langkah ini untuk melakukan tindakan Ubah Tanda Tangan -

  • Pilih metode.

  • Klik kanan padanya dan pilih Refactor → Change signature action

  • Jendela baru akan muncul di mana Anda dapat melakukan tindakan di atas.

  • Di bagian bawah jendela, ini menunjukkan pratinjau tanda tangan baru.

Ketik Migrasi

Jenis Migrasi mengubah jenis simbol. Simbol ini dapat berupa parameter metode atau atribut kelas. Mari kita pertimbangkan metode berikut sebelum melakukan tindakan yang diperlukan -

static void sayHello(String name) {
   System.out.println(name);
}

Ikuti langkah-langkah berikut untuk melakukan migrasi jenis -

  • Pilih tipe data "String".

  • Klik kanan padanya dan pilih Refactor → Type migration.

  • Masukkan tipe data yang diperlukan di kotak teks yang diberikan.

  • Pilih ruang lingkup dan klik tombol Refactor.