Rumah Keuangan Pribadi Memahami Pola Pengamat - dummies

Memahami Pola Pengamat - dummies

Daftar Isi:

Video: Tips memahami pembuatan dok akreditasi 2024

Video: Tips memahami pembuatan dok akreditasi 2024
Anonim

Pola desain Observer memungkinkan beberapa objek pengamat diberi tahu saat objek subjek diubah dengan cara tertentu. Setiap pengamat mendaftarkan diri dengan subjek, dan saat terjadi perubahan, subjek akan memberi tahu semuanya. Masing-masing pengamat diberi tahu secara paralel (yaitu, pada saat bersamaan).

Membuat antarmuka subjek

Bila Anda menerapkan pola desain, seringkali ide yang baik untuk memulai dengan membuat sebuah antarmuka untuk memastikan bahwa objek yang Anda buat akan sesuai dengan pola yang ingin Anda gunakan - terutama jika banyak objek yang terlibat Menerapkan antarmuka itu - memprogram ke antarmuka seperti namanya - membuat kode Anda sesuai dan biasanya membuat semuanya lebih jelas.

Bila Anda memasukkan pola Observer ke dalam kode, buatlah sebuah antarmuka atau kelas abstrak untuk para pengamat; Anda biasanya memiliki banyak pengamat, dan Anda harus tetap menerapkan metoda yang konsisten.

Dalam contoh ini, Anda juga perlu membuat antarmuka untuk subjek, yang merupakan pengamatan para pengamat; Antarmuka Subjek mencantumkan metode yang harus diterapkan subjek. Letakkan metode registerObserver disini agar subjek bisa melacak pengamat yang ingin didaftarkan. Selain mendaftarkan pengamat, Anda harus memiliki beberapa cara untuk menyingkirkannya, jadi tambahkan metode removeObserver. Dan ada metode notifyObservers yang akan memberi tahu pengamat tentang beberapa perubahan.

public interface Perihal

{

public void registerObserver (Observer o);

public void removeObserver (Pengamat o);

public void notifyObservers ();

}

Antarmuka ini mencantumkan metode yang digunakan oleh subjek seperti sistem basis data. Selanjutnya: antarmuka bagi para pengamat.

Membuat antarmuka pengamat

Membangun antarmuka Observer, yang diterapkan oleh pengamat agar mereka bisa mendapatkan notifikasi, sederhana saja. Yang Anda butuhkan hanyalah sebuah metode yang akan dipanggil saat sebuah notifikasi baru siap (Anda bisa memanggil metode update). Dalam contoh ini, Anda melewati operasi database yang dilakukan (seperti "edit", "delete", "create" dan sebagainya) dan catatan yang diubah sebagai string ke metode update.

public interface Observer

{

update void publik (operasi String, rekaman String);

}

Saat pengamat menerapkan metode update, subjek dapat melewati catatan yang telah terpengaruh dan operasi yang dilakukan.

Oke, kamu baik untuk pergi. Saatnya untuk membuat subjek Database yang akan melacak pengamat dan memberi tahu mereka saat ada perubahan.

Membuat subjek

Subjek harus membiarkan pengamat mendaftar dan harus memberi tahu mereka saat sebuah peristiwa terjadi. Menurut antarmuka Subjek, tiga metode yang harus diterapkan oleh subjek dalam contoh ini adalah: registerObserver, removeObserver, dan notifyObservers. Itulah yang dilakukan kelas Database dalam contoh ini.

Untuk melacak pengamat, gunakan vektor Java yang bernama pengamat, dibuat di constructor Database. (Tipe specifier di sini, adalah untuk Java 1. 5 atau yang lebih baru dan menunjukkan bahwa setiap objek pengamat menerapkan antarmuka Observer; jika Anda menggunakan versi Java yang lebih awal, hapus jenis specifiernya.)

import java. util. *;

kelas publik Perumusan database Subject

{

pengamat Vektor swasta;

publik Database ()

{

pengamat = new Vector ();

}

.

.

.

}

Bila menggunakan vektor, catat pengamat dengan sederhana. Ketika seorang pengamat ingin mendaftar, ia memanggil metode registerObserver subjek, menyerahkan dirinya sebagai objek. Subjek - objek kelas Database kami - hanya harus menambahkan pengamat tersebut ke vektor pengamat dalam metode registerObserver, dengan menggunakan metode penambahan kelas Vector.

impor java util. *;

kelas publik Perumusan database Subject

{

pengamat Vektor swasta;

publik Database ()

{

pengamat = new Vector ();

}

public void registerObserver (Observer o)

{

pengamat. tambahkan (o);

}

.

.

.

}

Bagaimana cara menghapus pengamat dari vektor pengamat? Tidak masalah. Bila Anda ingin menghapus objek dari vektor, Anda dapat menggunakan metode hapus vektor; inilah cara yang bekerja dalam metode RemoveObserver kelas database:

import java. util. *;

kelas publik Perumusan database Subject

{

pengamat Vektor swasta;

publik Database ()

{

pengamat = new Vector ();

}

public void registerObserver (Observer o)

{

pengamat. tambahkan (o);

}

public void removeObserver (Observer o)

{

pengamat. hapus (o);

}

.

.

.

}

Saat pengguna benar-benar melakukan sesuatu dengan database - menghapus sebuah catatan, misalnya - dia memanggil metode editRecord kelas Database. Misalnya, untuk menghapus record 1, Anda bisa memanggil metode ini seperti ini:

database. editRecord ("delete", "record 1");

Inilah metode editRecord yang terlihat seperti: Bila metode ini disebut, Anda melewatinya operasi basis data yang ingin Anda lakukan dan rekaman yang ingin Anda kerjakan, keduanya sebagai string dalam contoh ini. String itu disimpan sehingga bisa dilewatkan ke pengamat. Setelah senar disimpan, metode notifyObservers, muncul berikutnya, dipanggil untuk memberi tahu semua pengamat.

impor java util. *;

kelas publik Perumusan database Subject

{

pengamat Vektor swasta;

operasi String pribadi;

rekaman String pribadi;

publik Database ()

{

pengamat = new Vector ();

}

.

.

.

public void editRecord (operasi String, String record)

{

ini.operasi = operasi;

ini record = record;

notifyObservers ();

}

}

Inilah kode daging, bagian yang memberitahukan setiap pengamat bahwa telah terjadi perubahan: metode notifyObserver. Setiap pengamat menerapkan antarmuka Observer contoh ini - yang berarti ia memiliki metode pembaruan - jadi memberitahuPemilik hanya harus mengulang semua pengamat terdaftar di vektor pengamat, memanggil metode pembaruan masing-masing dengan operasi basis data dan rekaman yang terpengaruh.

impor java util. *;

kelas publik Perumusan database Subject

{

pengamat Vektor swasta;

operasi String pribadi;

rekaman String pribadi;

.

.

.

public void notifyObservers ()

{

untuk (int loopIndex = 0; loopIndex

Pengamat observer = (Observer) pengamat. dapatkan (loopIndex); Pengamat

. update (operasi, catatan);

}

}

public void editRecord (operasi String, String record)

{

ini. operasi = operasi;

ini record = record;

notifyObservers ();

}

}

Itu yang Anda butuhkan untuk Database. java, subjek dalam contoh ini Subjek akan membiarkan pengamat mendaftarkan diri, tidak mendaftarkan diri, dan diberi tahu saat catatan database telah diedit (yang Anda lakukan dengan metode editRecord kelas Database). Yang tersisa untuk dilakukan agar pertunjukan ini di jalan adalah menciptakan pengamat itu sendiri.

Memahami Pola Pengamat - dummies

Pilihan Editor

Bagaimana Menyediakan Dokumen dengan CSS3 - dummies

Bagaimana Menyediakan Dokumen dengan CSS3 - dummies

Menggunakan CSS3 untuk membuat garis besar dokumen berguna bila halaman berisi banyak materi dan Anda ingin pengguna menavigasi dengan mudah. Garis besar bergantung pada berbagai tag yang Anda berikan. Metode pembuatan dokumen saat ini adalah menggunakan tag sampai . Pendekatan ini bekerja dengan baik ...

Cara Mendaftar untuk Akun Google - dummies

Cara Mendaftar untuk Akun Google - dummies

Pembuat google Page menyediakan alat canggih yang memungkinkan bahkan halaman desain perancang pemula Sebelum Anda dapat menggunakan Google Page Creator untuk membuat halaman Web Anda sendiri, Anda harus mendaftar ke akun Google. Untuk mendaftar dan memulai membangun situs Web, ikuti langkah-langkah ini:

Bagaimana mengedarkan tepi dan membuat beberapa kolom dengan CSS3 - dummies

Bagaimana mengedarkan tepi dan membuat beberapa kolom dengan CSS3 - dummies

Daripada memiliki untuk menggunakan hingga empat gambar terpisah untuk memberi ilusi bentuk melengkung di situs Anda, dengan CSS3 Anda sekarang dapat membuat wadah dengan sudut melengkung! Inilah kodenya, yang memiliki deklarasi CSS3 yang didukung penuh di bagian atas diikuti oleh duplikat yang diawali untuk browser lainnya: #box {border-radius: 20px; ...

Pilihan Editor

PHP & MySQL For Dummies Cheat Sheet - dummies

PHP & MySQL For Dummies Cheat Sheet - dummies

Saat menulis program PHP untuk membuat aplikasi database Web Anda dan berkomunikasi Dengan database MySQL, Anda memiliki banyak hal yang perlu diingat. Anda harus mengeja kode dengan benar dan menggunakan sintaks yang sempurna. Lembar Cheat ini memberikan referensi untuk melihat secara cepat sintaks yang benar untuk kode yang paling sering Anda gunakan.

Gunakan kembali Kode di Program PHP melalui Fungsi - dummies

Gunakan kembali Kode di Program PHP melalui Fungsi - dummies

Anda dapat, dengan bantuan sebuah auto_prepend_file, buat sebuah fungsi file yang secara otomatis disertakan dalam semua program PHP Anda. Fungsi ini mungkin sesuatu yang sederhana seperti memulai sesi atau serumit fungsi login keseluruhan. Setiap kali Anda membutuhkan atau berpikir bahwa Anda perlu memiliki fungsi di lebih dari satu file, ...

Memecahkan skrip PHP - dummies

Memecahkan skrip PHP - dummies

Anda tidak dapat menulis skrip tanpa membuat kesalahan tertentu. Caranya adalah dengan melatih diri untuk mengenalinya, putar mata Anda, katakan, "Tidak lagi," dan perbaiki saja. Satu pesan kesalahan yang akan Anda lihat berkali-kali adalah Parse error: parse error in c: test. php on line 7 Ini adalah cara PHP untuk mengatakan "Hah? "Artinya ...

Pilihan Editor

Bagaimana Membangun Kampanye Otomasi Pemasaran untuk Memimpin Memimpin Memelihara - dummies

Bagaimana Membangun Kampanye Otomasi Pemasaran untuk Memimpin Memimpin Memelihara - dummies

Anda dapat memberdayakan tenaga penjualan dengan mengasuh program otomasi pemasaran untuk membantu mereka menjadi lebih efektif dengan waktu mereka. Berikut adalah beberapa item yang perlu dipertimbangkan sebelum Anda membuat program pengasuhan yang spesifik ini: Segmentasi / otomasi: Anda perlu menyiapkan cara agar penjualan mengarah ke program tetes dalam Customer Relationship Management ...

Bagaimana Membangun Kampanye Pemasaran Otomatis untuk Penjualan Dingin Memimpin - dummies

Bagaimana Membangun Kampanye Pemasaran Otomatis untuk Penjualan Dingin Memimpin - dummies

Kampanye pemasaran otomatis pertama Anda harus membangun penjualan setelah menghidupkan pemberdayaan penjualan harus dirancang untuk menangkap dan memelihara prospek yang tidak dapat dicapai penjualan melalui proses penjualan. Prospek ini biasanya jatuh melalui celah-celah dan tidak pernah terdengar lagi. Banyak artikel yang mencakup keefektifan penjualan merujuk pada statistik bahwa ...

Bagaimana Membangun Kampanye Otomasi Pemasaran Memimpin Bersih Memimpin Baru - dummies

Bagaimana Membangun Kampanye Otomasi Pemasaran Memimpin Bersih Memimpin Baru - dummies

Tujuan jaring baru memimpin memupuk program otomasi pemasaran adalah untuk mengambil keputusan baru dari pertunangan pertamanya untuk menjadi timbal penjualan yang siap. Saat membangun program pengasuhan utama bersih pertama, gunakan daftar periksa berikut untuk memastikan bahwa Anda memiliki semua yang Anda butuhkan untuk membuat program hebat: Konten: Anda ...