Diskusi yang Benar:
Mode perintah merangkum permintaan atau operasi ke suatu objek. Sistem runtime mode perintah menggunakan permintaan yang berbeda untuk parameterisasi klien, permintaan antrian atau merekam log permintaan, dan dapat memberikan fungsi pencabutan dan pemulihan perintah.
populer:
Sebenarnya mudah dimengerti. Mode perintah, yang Anda pedulikan adalah perintah (atau operasi). Mari memberi contoh. Di perusahaan, seluruh operasi seperti suatu sistem. Seorang bos mengeluarkan perintah, dan pemimpin tingkat menengah menerima perintah dan kemudian menugaskannya kepada karyawan tertentu yang bertanggung jawab. Seluruh prosesnya jelas. Ada persyaratan, cara memperbaiki proses ini dan membentuk sistem. Kita hanya perlu memahami poin kunci: pesanan. Ekstrak dan yang lainnya akan diselesaikan. Ekstrak perintah dan merangkumnya menjadi objek independen untuk mencapai decoupling. Adapun yang lain, dapat dengan mudah diperluas, apakah perintah ini diusulkan oleh CEO, departemen sumber daya manusia, atau ayah Anda. Terlepas dari apakah pelaksana perintah ini adalah Zhang San atau Turtle. Munculnya model ini sebenarnya adalah filosofis "memahami kontradiksi utama". Lebih banyak contoh, seperti penulis lain mengutip "apa perbedaan antara pergi ke pinggir jalan dan pergi ke restoran barbekyu untuk makan barbekyu" atau "raja monyet membuat keributan besar tentang kaisar giok di istana surgawi untuk menangkap monyet dengan taibai venus".
Mode perintah Java pada dasarnya adalah enkapsulasi perintah, yang memisahkan tanggung jawab untuk mengeluarkan perintah dan mendelegasikannya ke objek yang berbeda. Dalam istilah awam, saya adalah bosnya, jadi saya hanya mengirim pesanan. Adapun siapa untuk mengirim perintah ini dan siapa yang mengeksekusinya, terserah saya. Saya tidak mengirim uang untuk mempekerjakan seseorang untuk menyebabkan masalah bagi diri saya sendiri. Anda adalah karyawan yang bertanggung jawab atas hal -hal, dan tugas Anda adalah melakukan tugas yang ditetapkan oleh atasan Anda. Jadilah down-to-earth, jangan tahu terlalu banyak, jangan gosip, jangan bertanya terlalu banyak.
menyelesaikan:
Mari kita lihat diagram kelas terlebih dahulu:
Berdasarkan ini kita melihat kode sampel:
antarmuka publik Icommand {void execute (); } kelas publik Concretecommand mengimplementasikan ICommand {penerima penerima pribadi; Concretecommand publik (penerima penerima) {this.receiver = penerima; } @Override public void execute () {this.receiver.action (); }} penerima kelas publik {public void action () {System.out.println ("Receiver Do Something"); }} public class invoker {private icommand command; Public Invoker (Command ICommand) {this.Command = command; } public void Invoke () {this.Command.execute (); }} tes kelas publik {public static void main (string [] args) {receiver receiver = new receiver (); // command icommand real executor = new concretecommand (penerima); // perintah yang digunakan untuk Invoker Invoker = new Invoker (perintah); // penelepon invoker.invoke (); }}
keuntungan:
kekurangan:
Mungkin ada terlalu banyak kelas perintah tertentu.