Corak Perintah dan Lelaran
Bungkus permintaan sebagai objek dengan Perintah dan lalui koleksi dengan Lelaran.
Corak Perintah dan Lelaran ialah pelajaran Seni Bina Bersih & Corak Reka Bentuk dalam Amalan percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Seni Bina Bersih & Corak Reka Bentuk dalam Amalan, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Seni Bina Bersih & Corak Reka Bentuk dalam Amalan merangkumi sejumlah 4 pelajaran.
Apakah Corak Perintah?
Corak Perintah ialah corak reka bentuk tingkah laku yang menukarkan permintaan menjadi objek kendiri. Objek ini mengandungi semua maklumat tentang permintaan tersebut, termasuk kaedah yang perlu dipanggil dan parameter yang diperlukan.
Bayangkan anda memasukkan arahan ke dalam sebuah bungkusan. Anda kemudiannya boleh mengedarkan bungkusan ini, meletakkannya dalam baris gilir atau malah membuat asalnya kemudian, tanpa penghantar perlu mengetahui cara arahan itu dilaksanakan.
Komponen Teras Perintah
Untuk memahami Corak Perintah, mari kita lihat komponen utamanya:
- Command: Antara muka atau kelas abstrak yang mengisytiharkan kaedah
execute(). - ConcreteCommand: Melaksanakan antara muka
Commanddengan mengikat objek Penerima tertentu kepada suatu tindakan. - Penerima: Objek yang melaksanakan kerja sebenar. Objek ini mengetahui cara menjalankan operasi tersebut.
- Pemanggil: Meminta perintah menjalankan permintaannya. Pemanggil tidak mengetahui butiran operasi atau penerima.
- Klien: Mencipta objek
ConcreteCommanddan menetapkanReceiverkepadanya.
Corak Perintah dalam Tindakan
Mari kita bayangkan sistem rumah pintar yang membolehkan anda mengawal lampu. Tanpa Corak Perintah, alat kawalan jauh anda akan memanggil light.turnOn() atau light.turnOff() secara langsung.
Dengan Corak Perintah, alat kawalan jauh hanya mengetahui cara untuk 'melaksanakan perintah'. Alat itu tidak mempedulikan sama ada tindakannya menghidupkan lampu, membuka pintu garaj atau memainkan muzik. Hal ini menjadikan alat kawalan jauh anda (Pemanggil) sangat fleksibel!
Kod: Perintah Hidupkan/Matikan Lampu
Berikut ialah contoh Java ringkas yang menunjukkan Corak Perintah untuk mengawal lampu. Perhatikan bahawa RemoteControl (Pemanggil) hanya berinteraksi dengan antara muka Command.
interface Command {
void execute();
}
class Light {
public void turnOn() {
System.out.println("Light is ON");
}
public void turnOff() {
System.out.println("Light is OFF");
}
}
class LightOnCommand implements Command {
private Light light;
public LightOnCommand(Light light) {
this.light = light;
}
@Override
public void execute() {
light.turnOn();
}
}
class LightOffCommand implements Command {
private Light light;
public LightOffCommand(Light light) {
this.light = light;
}
@Override
public void execute() {
light.turnOff();
}
}
class RemoteControl {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void pressButton() {
command.execute();
}
}
public class Main {
public static void main(String[] args) {
Light livingRoomLight = new Light();
LightOnCommand onCommand = new LightOnCommand(livingRoomLight);
LightOffCommand offCommand = new LightOffCommand(livingRoomLight);
RemoteControl remote = new RemoteControl();
remote.setCommand(onCommand);
remote.pressButton();
remote.setCommand(offCommand);
remote.pressButton();
}
}Kelebihan Corak Perintah
Corak Perintah menawarkan beberapa kelebihan yang berkuasa:
- Pemisahan gandingan: Pemanggil tidak bergandingan dengan penerima, lalu mengurangkan kebergantungan.
- Buat asal/Buat semula: Perintah boleh disimpan dalam senarai sejarah, menjadikan fungsi buat asal/buat semula lebih mudah dilaksanakan.
- Berbaris gilir/Pengelogan: Permintaan boleh diletakkan dalam baris gilir, direkodkan dan dilaksanakan pada waktu yang berbeza.
- Kebolehkembangan: Penambahan perintah baharu tidak memerlukan kod pemanggil sedia ada diubah.
Apakah Corak Iterator?
Corak Iterator ialah corak reka bentuk tingkah laku yang menyediakan cara untuk mengakses elemen objek agregat (seperti senarai atau tatasusunan) secara berjujukan tanpa mendedahkan perwakilan asasnya.
Bayangkan anda mempunyai senarai main lagu. Iterator membolehkan anda menelusuri setiap lagu satu demi satu (seterusnya, sebelumnya dan sebagainya) tanpa perlu mengetahui sama ada senarai main itu disimpan sebagai tatasusunan, senarai terpaut atau sesuatu yang lain.
Komponen Teras Iterator
Corak Iterator melibatkan komponen utama berikut:
- Iterator: Antara muka yang mentakrifkan kaedah untuk mengakses dan melintasi elemen (contohnya,
hasNext(),next()). - ConcreteIterator: Melaksanakan antara muka
Iteratordan menjejaki kedudukan semasa dalam penelusuran. - Agregat: Antara muka atau kelas abstrak yang mentakrifkan kaedah untuk mencipta objek
Iterator(contohnya,createIterator()). - ConcreteAggregate: Melaksanakan antara muka
Agregatdan mengembalikan tikaConcreteIterator.
Corak Iterator dalam Tindakan
Kebanyakan bahasa pengaturcaraan mempunyai iterator terbina dalam (seperti Iterator Java atau objek boleh lelar Python). Namun, kadangkala anda membina koleksi tersuai yang memerlukan anda mentakrifkan logik penelusuran sendiri.
Contohnya, jika anda mempunyai kelas MyStringList tersuai yang menyimpan rentetan secara dalaman, iterator membolehkan kod luaran mengulangi rentetan tersebut tanpa mengetahui sama ada MyStringList menggunakan tatasusunan, senarai terpaut atau struktur pepohon secara dalaman.
Kod: Iterator Senarai Tersuai
Contoh Java ini menunjukkan cara mencipta StringList tersuai dan Iterator untuknya. Kaedah Main boleh mengulangi senarai menggunakan iterator tanpa mengetahui tatasusunan dalamannya.
interface MyIterator {
boolean hasNext();
String next();
}
interface MyAggregate {
MyIterator createIterator();
}
class MyStringList implements MyAggregate {
private String[] items;
private int count;
public MyStringList(int capacity) {
items = new String[capacity];
count = 0;
}
public void add(String item) {
if (count < items.length) {
items[count++] = item;
}
}
@Override
public MyIterator createIterator() {
return new StringListIterator(this);
}
// Helper to access elements by index for the iterator
public String get(int index) {
if (index >= 0 && index < count) {
return items[index];
}
return null;
}
public int size() {
return count;
}
}
class StringListIterator implements MyIterator {
private MyStringList list;
private int position;
public StringListIterator(MyStringList list) {
this.list = list;
this.position = 0;
}
@Override
public boolean hasNext() {
return position < list.size();
}
@Override
public String next() {
if (hasNext()) {
return list.get(position++);
}
return null;
}
}
public class Main {
public static void main(String[] args) {
MyStringList names = new MyStringList(5);
names.add("Alice");
names.add("Bob");
names.add("Charlie");
MyIterator iterator = names.createIterator();
System.out.println("Iterating through names:");
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}Semakan Pantas: Corak Reka Bentuk
Anda telah mempelajari dua corak tingkah laku yang berkuasa. Mari uji pemahaman anda.
Imbas Kembali: Perintah & Iterator
Syabas! Dalam pelajaran ini, kita meneroka dua corak reka bentuk tingkah laku yang penting:
- Corak Perintah merangkum permintaan sebagai objek, membolehkan ciri berkuasa seperti buat asal/buat semula, baris gilir dan pengelogan permintaan, sambil menyahgandingkan pemanggil daripada penerima.
- Corak Iterator menyediakan cara piawai untuk melintasi elemen dalam koleksi, menyembunyikan struktur dalaman koleksi dan menggalakkan kaedah lelaran yang fleksibel.
Penguasaan corak-corak ini akan meningkatkan fleksibiliti dan kebolehselenggaraan reka bentuk perisian anda dengan ketara.
Pelajari Seni Bina Bersih & Corak Reka Bentuk dalam Amalan dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Corak Perintah dan Lelaran” percuma?
Ya — teks penuh “Corak Perintah dan Lelaran” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Seni Bina Bersih & Corak Reka Bentuk dalam Amalan, tingkat taraf kepada CoddyKit PRO. Kursus Seni Bina Bersih & Corak Reka Bentuk dalam Amalan merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Corak Perintah dan Lelaran”?
Bungkus permintaan sebagai objek dengan Perintah dan lalui koleksi dengan Lelaran. Anda berlatih Seni Bina Bersih & Corak Reka Bentuk dalam Amalan menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Seni Bina Bersih & Corak Reka Bentuk dalam Amalan?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Seni Bina Bersih & Corak Reka Bentuk dalam Amalan di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Corak Perintah dan Lelaran” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Seni Bina Bersih & Corak Reka Bentuk dalam Amalan ini?
Ya. Setiap pelajaran Seni Bina Bersih & Corak Reka Bentuk dalam Amalan menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Corak Pemerhati dan Strategi
- Corak Perintah dan Lelaran
- Corak Kaedah Templat dan Keadaan
- Mediator dan Rantaian Tanggungjawab