Berbagi teknologi

Jelajahi pola perintah dan aplikasinya

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

mode perintah

mode perintah adalah pola desain perilaku yang mengubah permintaan menjadi objek terpisah yang berisi semua informasi terkait permintaan tersebut. Transformasi ini memungkinkan Anda membuat parameter metode berdasarkan permintaan yang berbeda, permintaan penundaan atau antrian, dan mengimplementasikan operasi yang dapat dibatalkan.

Struktur mode perintah

Masukkan deskripsi gambar di sini

  1. pengirim (Pengirim) - juga dikenal sebagai "Invoker" - kelas bertanggung jawab untuk menginisialisasi permintaan, yang harus berisi variabel anggota untuk menyimpan referensi ke objek perintah. Pengirim memicu perintah tanpa mengirimkan permintaan langsung ke penerima. Perhatikan bahwa pengirim tidak bertanggung jawab untuk membuat objek perintah: biasanya pengirim memperoleh perintah yang telah dibuat sebelumnya dari klien melalui konstruktor.
  2. MemesanAntarmuka (Perintah) biasanya hanya mendeklarasikan metode untuk menjalankan perintah.
  3. Perintah khusus (Perintah Beton) akan mengimplementasikan berbagai jenis permintaan. Perintah spesifik itu sendiri tidak menyelesaikan pekerjaan, namun mendelegasikan panggilan ke objek logika bisnis. Namun untuk menyederhanakan kode, kelas-kelas ini dapat digabungkan. Parameter yang diperlukan untuk menerima metode eksekusi objek dapat dideklarasikan sebagai variabel anggota dari perintah tertentu. Anda dapat membuat objek perintah tidak dapat diubah dan hanya mengizinkan inisialisasi variabel anggota ini melalui konstruktor.
  4. penerima Kelas (Penerima) berisi bagian dari logika bisnis. Hampir semua benda dapat berfungsi sebagai penerima. Sebagian besar perintah hanya menangani detail cara meneruskan permintaan ke penerima, dan penerima akan melakukan sendiri pekerjaannya.
  5. klien (Klien) akan membuat dan mengkonfigurasi objek perintah tertentu. Klien harus meneruskan semua parameter permintaan, termasuk entitas penerima, ke konstruktor perintah. Setelah itu, perintah yang dihasilkan dapat dikaitkan dengan satu atau lebih pengirim.

Kode umum untuk mode perintah:

//抽象接收者
public abstract class Receiver{
	public abstract void operation();
}

//具体接收者
public class Recevier1 extends Recevier{
	public void operation(){
		...
	}
}

//通用命令接口
public interface Command{
	void execute();
}

//具体命令类
public class ConcreteCommand1 implements Command{
	private Receiver receiver;
	
	public ConcreteCommand1(Receiver _receiver){
		 this.receiver = _receiver;
	}
	
	public void execute(){
		this.receiver.operation();
	}
}

//调用者类
public class Invoker{
	private Command command;
	
	public void setCommand(Command _command){
		this.command = _command;
	}
	
	public void executeCommand(){
		this.command.execute();
	}
	
}

//主程序类
public class Client{
	public static void main(String[] args){
		//调用者
		Invoker invoker = new Invoker();
		//接收者
		Receiver receiver1 = new Receiver1();
		//定义一个命令
		Command command = new ConcreteCommand1(receiver1);
		
		invoker.setCommand(command);
		invoker.executeCommand();
	}
}