跳至正文

什麼是樣板程式碼?概念總結和範例

什麼是樣板?

  • Boilerplate 是指報業公司使用的金屬板。
  • 報紙使用金屬板上已經製作的模板重複印刷相同的內容。

樣板程式碼概念

  • 樣板程式碼是指每次啟動新專案時都必須重複編寫的程式碼。樣板程式碼是在多個地方以類似方式重複的程式碼。
  • 例如,這包括建立專案結構、初始化設定、載入庫等。或者,它指的是**在實現特定功能時必須重複編寫的程式碼,例如 Getter & Setter 方法。

樣板程式碼範例

  • 樣板程式碼可以以多種語言出現。
  • Java中用作樣板的程式碼範例如下:
    • getter&setter方法
    • equals() 和 hashCode() 方法
    • toString()方法
    • 建構方法
  • 以上程式碼是每次建立新類別時必須重複編寫的程式碼。
// 1. Getter & Setter Method
public class Person {
private String name;
private int age;

// Getter Method
public String getName() {
return name;
}

// Setter Method
public void setName(String name) {
this.name = name;
}

// Getter Method
public int getAge() {
return age;
}

// Setter Method
public void setAge(int age) {
this.age = age;
}
}

// 2. equals() and hashCode() Method
public class Person {
private String name;
private int age;

// equals() Method
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}

// hashCode() Method
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}

// 3. toString() Method
public class Person {
private String name;
private int age;

// toString() Method
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}

// 4. Constructor Method
public class Person {
private String name;
private int age;

// Constructor Method
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}

如何減少樣板程式碼

  • 樣板程式碼是必須重複編寫的程式碼,因此隨著程式碼量的增加,程式碼的可讀性可能會下降。
  • 在Java中,可以使用以下方法來減少樣板程式碼。
    • 使用IDE(整合開發環境):使用IDE提供的功能可以自動產生樣板程式碼。
    • 使用Lombok函式庫:可以使用Lombok函式庫自動產生Getter & Setter方法、equals()和hashCode()方法、toString()方法、Constructor方法等。
    • 使用註解處理器:可以使用註解處理器自動產生樣板程式碼。
    • 使用模板引擎:可以使用模板引擎自動產生樣板程式碼。
  • 在Java中,您可以使用Lombok函式庫來減少Boilerplate程式碼,如下所示。
    • 使用@Data註解,可以自動建立Getter&Setter方法、equals()和hashCode()方法、toString()方法、Constructor方法。
    • 只需使用@Data註解可以減少程式碼編寫,如下所示。
import lombok.Data;

@Data
public class Person {
private String name;
private int age;
}
  • 根據語言或框架的不同,減少樣板程式碼的方法可能會有所不同。透過使用您正在使用的語言或框架提供的功能,找到減少樣板程式碼的方法。