Rumah  >  Artikel  >  Java  >  Amalan corak reka bentuk antara muka dan kelas abstrak dalam Java

Amalan corak reka bentuk antara muka dan kelas abstrak dalam Java

WBOY
WBOYasal
2024-05-01 09:15:01418semak imbas

Antara muka dan corak reka bentuk kelas abstrak dalam Antara Muka Java: Tandakan antara muka: Menunjukkan bahawa kelas mempunyai atribut khusus dan tidak mengisytiharkan kaedah. Antara muka berfungsi: mengisytiharkan hanya satu kaedah abstrak, tersedia untuk Lambdas dan Streams. Antara muka perkhidmatan: mentakrifkan logik perniagaan, dan kelas pelaksanaan menyediakan pelaksanaan khusus. Kelas abstrak: Corak kelas abstrak: mentakrifkan kaedah dan atribut yang tidak boleh digunakan, dan subkelas perlu melaksanakan kaedah abstrak. Corak kaedah templat: Tentukan langkah operasi dan subkelas boleh mengatasi beberapa langkah.

Java 中接口和抽象类的设计模式实践

Amalan corak reka bentuk antara muka dan kelas abstrak dalam Java

Pengenalan

Antara muka dan kelas abstrak ialah dua mekanisme abstraksi penting dalam Java. Ia boleh digunakan dengan berkesan dengan mengikuti corak reka bentuk tertentu. Artikel ini akan menyelidiki corak reka bentuk yang berbeza antara muka dan kelas abstrak serta menyediakan contoh kod praktikal.

Antaramuka

1. Antara Muka Penanda

Antara Muka Penanda tidak mengisytiharkan sebarang kaedah dan digunakan untuk menunjukkan bahawa kelas mempunyai atribut khusus. Contohnya:

public interface Vehicle {
}

2. Antara Muka Berfungsi

Antara muka berfungsi hanya mengisytiharkan satu kaedah abstrak. Ia boleh digunakan dalam ungkapan Lambdas dan API Aliran. Contohnya:

@FunctionalInterface
public interface Calculate {
    int calculate(int a, int b);
}

3. Antara Muka Perkhidmatan

Antara muka perkhidmatan mentakrifkan logik perniagaan, manakala kelas pelaksanaan lain menyediakan pelaksanaan sebenar. Contohnya:

public interface UserService {
    User getUserById(int id);
    void createUser(User user);
}

Kelas abstrak

1. Corak kelas abstrak

Kelas abstrak boleh mentakrifkan kaedah dan sifat, tetapi tidak boleh dijadikan instantiated. Subkelas mesti melaksanakan kaedah abstrak untuk menggunakan kelas abstrak. Contohnya:

public abstract class Animal {
    public abstract void makeSound();
}

2. Corak kaedah templat

Corak kaedah templat mentakrifkan langkah-langkah operasi, beberapa daripadanya boleh ditindih oleh subkelas. Contohnya:

public abstract class Template {
    public final void execute() {
        step1();
        step2();
        step3();
    }

    protected abstract void step1();
    protected abstract void step2();
    protected abstract void step3();
}

Kes Praktikal

Mari kami tunjukkan cara menggunakan antara muka dan corak reka bentuk kelas abstrak melalui kes praktikal.

Soalan Produk Khusus:

Reka bentuk aplikasi untuk menguruskan pelbagai jenis kenderaan, setiap satunya dengan fungsi yang berbeza.

Penyelesaian:

  • Antara Muka Penanda: Buat antara muka penanda Kenderaan untuk mengenal pasti semua jenis kenderaan. Vehicle 标记接口来标识所有车辆类型。
  • 功能接口:创建 CalculateMileage 功能接口以计算车辆的里程。
  • 抽象类:创建 AbstractVehicle 抽象类来定义车辆的通用功能,如 make 和 model。
  • 服务接口:创建 VehicleService
Antara muka berfungsi:

Buat CalculateMileage antara muka berfungsi untuk mengira perbatuan kenderaan.

Kelas abstrak:

Buat kelas abstrak Kenderaan Abstrak untuk mentakrifkan fungsi biasa kenderaan, seperti buatan dan model.

Antara muka perkhidmatan:

Buat antara muka perkhidmatan VehicleService untuk mentakrifkan logik perniagaan pengurusan kenderaan.

🎜🎜🎜Contoh Kod🎜🎜
// 标记接口
public interface Vehicle {}

// 功能接口
@FunctionalInterface
public interface CalculateMileage {
    double calculate(Vehicle vehicle);
}

// 抽象类
public abstract class AbstractVehicle implements Vehicle {
    protected String make;
    protected String model;

    public String getMake() {
        return make;
    }

    public String getModel() {
        return model;
    }
}

// 服务接口
public interface VehicleService {
    List<Vehicle> getAllVehicles();
    Vehicle getVehicleById(int id);
    void createVehicle(Vehicle vehicle);
    void deleteVehicle(int id);
}
🎜🎜Kesimpulan🎜🎜🎜Dengan memanfaatkan corak reka bentuk antara muka dan kelas abstrak, anda boleh melaksanakan penyelesaian yang fleksibel dan berskala dalam aplikasi Java. Artikel ini memberikan gambaran keseluruhan corak yang berbeza dan aplikasi praktikalnya untuk membantu pembangun memahami dan menggunakan mekanisme pengabstrakan ini dengan lebih baik. 🎜

Atas ialah kandungan terperinci Amalan corak reka bentuk antara muka dan kelas abstrak dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn