Rumah Kewangan Peribadi Pemahaman Pattern Observer - dummies

Pemahaman Pattern Observer - dummies

Isi kandungan:

Video: Pemahaman Asas Candlestick pattern 2024

Video: Pemahaman Asas Candlestick pattern 2024
Anonim

Reka bentuk reka bentuk Observer membolehkan beberapa objek pemerhati diberitahu apabila objek subjek diubah dalam beberapa cara. Setiap pemerhati mendaftar dengan subjek, dan apabila perubahan terjadi, subjek memberitahu mereka semua. Setiap pemerhati diberitahu secara selari (iaitu, pada masa yang sama).

Membuat antara muka subjek

Apabila anda melaksanakan corak reka bentuk, ia sering merupakan idea yang baik untuk bermula dengan membuat antara muka untuk memastikan objek yang anda buat akan mematuhi pola yang anda cuba gunakan - terutamanya jika pelbagai objek terlibat. Melaksanakan antara muka ini - pengaturcaraan kepada antara muka yang dipanggil - mengekalkan kod anda dalam barisan dan biasanya menyimpan perkara yang lebih jelas.

Apabila anda meletakkan corak Observer ke dalam kod, sediakan antara muka atau kelas abstrak untuk pemerhati; anda biasanya akan mempunyai pemerhati berganda, dan anda perlu mengekalkan kaedah yang mereka laksanakan secara konsisten.

Dalam contoh ini, anda juga perlu menyediakan antara muka untuk subjek, iaitu apa yang dilihat oleh pemerhati; Antara muka Subjek menyenaraikan subjek kaedah yang mesti dilaksanakan. Letakkan kaedah registerObserver di sini supaya subjek dapat menjejaki pemerhati yang ingin didaftarkan. Selain mendaftarkan pemerhati, anda harus mempunyai beberapa cara untuk menyingkirkannya, jadi tambah kaedah removeObserver. Dan ada satu kaedah Pemberitahuan yang dapat memberitahu pengamat beberapa perubahan.

antara muka awam Subjek

{

public void registerObserver (Observer o);

tidak sah public removeObserver (Observer o);

tidak sah awam notifikasiObservers ();

}

Antaramuka ini menyenaraikan kaedah yang subjek seperti sistem pangkalan data harus dilaksanakan. Seterusnya: antara muka untuk pemerhati.

Membuat antara muka pemerhati

Membina antara muka Observer, yang dilaksanakan oleh pemerhati untuk membolehkan mereka mendapatkan pemberitahuan, mudah. Apa yang anda perlukan adalah kaedah yang akan dipanggil apabila pemberitahuan baru sudah siap (anda boleh memanggil kemas kini kaedah itu). Dalam contoh ini, anda lulus operasi pangkalan data yang telah dilakukan (seperti "edit", "delete", "create" dan sebagainya) dan rekod yang diubah sebagai rentetan kepada kaedah kemas kini.

Antara muka awam Observer

{

kemas kini pembaziran awam (Operasi tali, Rekod string);

}

Apabila pemerhati melaksanakan kaedah kemas kini, subjek dapat menyerahkan rekod yang telah terjejas dan operasi yang dilakukan.

Baiklah, awak baik. Sudah tiba masanya untuk mewujudkan subjek Pangkalan Data yang akan menjejaki pemerhati dan memberitahu mereka apabila terdapat perubahan.

Mencipta subjek

Subjek harus membiarkan pemerhati mendaftar dan perlu memberitahu mereka apabila peristiwa berlaku. Mengikut antara muka Subjek, tiga kaedah subjek yang perlu dilaksanakan dalam contoh ini adalah: registerObserver, removeObserver, dan notifikasiObservers. Itulah kelas Pangkalan Data dalam contoh ini.

Untuk mengesan pemerhati, gunakan pengesan vektor Java bernama pengamat, yang dibuat dalam pembina Pangkalan Data. (Jenis penentu di sini, adalah untuk Java 1. 5 atau lebih baru dan menunjukkan bahawa setiap objek pemerhati mengimplementasikan antara muka Observer; jika anda menggunakan versi Java yang terdahulu, masukkan nota jenis.)

import java. util. *;

perkakasan pangkalan data kelas Subjek

{

pemerhati Vektor swasta;

Pangkalan Data awam ()

{

pemerhati = Vektor baru ();

}

.

.

.

}

Apabila anda menggunakan vektor, mengesan pemerhati adalah mudah. Apabila pemerhati mahu mendaftar, ia menyenaraikan kaedah registerObserver subjek, melepaskan dirinya sebagai objek. Subjek - objek kelas Pangkalan Data kami - hanya perlu menambah pemerhati ke vektor pemerhati dalam kaedah registerObserver, menggunakan kaedah tambah kelas Vektor.

java import. util. *;

perkakasan pangkalan data kelas Subjek

{

pemerhati Vektor swasta;

Pangkalan Data awam ()

{

pemerhati = Vektor baru ();

}

void awam registerObserver (Observer o)

{

pemerhati. tambah (o);

}

.

.

.

}

Bagaimana hendak mengeluarkan seorang pemerhati dari vektor pemerhati? Tiada masalah. Apabila anda mahu mengeluarkan objek dari vektor, anda boleh menggunakan kaedah pengalih vektor; inilah cara yang berfungsi dalam kaedah removeObserver kelas Database:

import java. util. *;

perkakasan pangkalan data kelas Subjek

{

pemerhati Vektor swasta;

Pangkalan Data awam ()

{

pemerhati = Vektor baru ();

}

void awam registerObserver (Observer o)

{

pemerhati. tambah (o);

}

void public removeObserver (Observer o)

{

observers. keluarkan (o);

}

.

.

.

}

Apabila pengguna sebenarnya melakukan sesuatu dengan pangkalan data - memadam rekod, sebagai contoh - dia memanggil kaedah editRecord kelas Pangkalan data. Sebagai contoh, untuk memadam rekod 1, anda mungkin boleh memanggil kaedah ini seperti ini:

pangkalan data. editRecord ("padamkan", "rekod 1");

Berikut ialah kaedah editRecord seperti: Apabila kaedah ini dipanggil, anda mengesahkan operasi pangkalan data yang anda mahu lakukan dan rekod yang anda mahu lakukan, kedua-duanya sebagai rentetan dalam contoh ini. Rentetan tersebut disimpan supaya dapat diteruskan ke pemerhati. Selepas rentetan disimpan, kaedah notifikasiObservers, datang seterusnya, dipanggil untuk memberitahu semua pemerhati.

java import. util. *;

perkakasan pangkalan data kelas Subjek

{

pemerhati Vektor swasta; Operasi peribadi;

rekod String peribadi;

Pangkalan Data awam ()

{

pemerhati = Vektor baru ();

}

.

.

.

public void editRecord (String operation, record string)

{

this.operasi = operasi;

ini. rekod = rekod;

notifyObservers ();

}

}

Berikut adalah daging kod, bahagian yang memberitahu setiap pemerhati bahawa terdapat perubahan: kaedah memberitahu pelayan. Setiap pemerhati mengimplementasikan antara muka Observer contoh ini - yang bermaksud ia mempunyai kaedah kemas kini - jadi maklumkanObservers hanya perlu melampirkan semua pemerhati berdaftar di vektor pemerhati, memanggil setiap kaedah kemas kini masing-masing dengan operasi pangkalan data dan rekod yang terjejas.

java import. util. *;

perkakasan pangkalan data kelas Subjek

{

pemerhati Vektor swasta; Operasi peribadi;

rekod String peribadi;

.

.

.

awam tidak memberitahu Pemberitahu ()

{

untuk (int loopIndex = 0; loopIndex

Observer observer = (Observer) dapatkan (loopIndex);

pemerhati. kemas kini (operasi, rekod);

}

}

public void editRecord (String operation, record string)

{

this. operasi = operasi;

ini. rekod = rekod;

notifyObservers ();

}

}

Itu sahaja yang anda perlukan untuk Pangkalan Data. java, subjek dalam contoh ini. Subjek akan membolehkan pemerhati mendaftarkan diri, menyalahkan diri sendiri, dan diberitahu apabila rekod pangkalan data telah diedit (yang anda lakukan dengan kaedah editRecord kelas Pangkalan Data). Apa yang perlu dilakukan untuk mendapatkan persembahan ini di jalan raya adalah untuk mewujudkan pemerhati sendiri.

Pemahaman Pattern Observer - dummies

Pilihan Editor

Bagaimana Meditasi Mengubah Brain - dummies

Bagaimana Meditasi Mengubah Brain - dummies

Bersenjata dengan maklumat terkini tentang cara kerja otak, penyelidik telah mempelajari korelasi antara meditasi, pengaktifan bahagian otak yang berlainan, dan perubahan tingkah laku, kognisi, dan emosi. Hasilnya adalah jauh dari konklusif - mereka lebih seperti mengintip sekilas tentang bidang eksplorasi baru yang luas - tetapi mereka ...

Pilihan Editor

Cara Menghitung Umur dengan Formula Excel - patung

Cara Menghitung Umur dengan Formula Excel - patung

Salah satu cara yang paling mudah untuk mengira umur apa-apa pun adalah untuk menggunakan fungsi Excel DATEDIF. Fungsi misterius ini tidak muncul dalam fail Bantuan Excel, tetapi telah wujud sejak Excel 2000. Fungsi ini membuat pengiraan apa-apa jenis tarikh perbandingan angin. Untuk mengira usia seseorang menggunakan fungsi DATEDIF, anda ...

Bagaimana Menghitung Masa Berlalu di Excel - dummies

Bagaimana Menghitung Masa Berlalu di Excel - dummies

Salah satu perhitungan yang lebih biasa dilakukan dengan nilai masa melibatkan pengiraan masa berlalu - iaitu bilangan jam dan minit antara waktu mula dan waktu tamat. Jadual dalam gambar menunjukkan senarai masa mula dan akhir bersama dengan masa berlalu yang dikira. Anda boleh melihat bahawa formula ...

Bagaimana Menghitung Nilai Masa Depan dalam Excel 2013 - dummies

Bagaimana Menghitung Nilai Masa Depan dalam Excel 2013 - dummies

Fungsi Masa Depan Nilai (FV) Excel 2013 ditemui di menu lungsur butang Financial pada tab Rumus Ribbon (Alt + MI). Fungsi FV mengira nilai masa depan pelaburan. Sintaks fungsi ini ialah = FV (rate, nper, pmt, [pv], [type]) Kadar, nper, pmt, dan jenis argumen adalah sama seperti yang digunakan oleh PV ...

Pilihan Editor

Memindahkan Imej Digital dari Kamera Anda ke Komputer Windows - dummies

Memindahkan Imej Digital dari Kamera Anda ke Komputer Windows - dummies

, Anda boleh dengan mudah memindahkan imej dari kamera digital anda ke komputer anda. Pemindahan kamera ke komputer memerlukan anda memasang pemandu kamera anda pada PC anda. Untuk memindahkan foto dari kamera digital atau pembaca kad anda ke PC anda

Memindahkan Foto Digital dari Kad Memori Anda ke Komputer Anda dengan Adapter Kad PC

Memindahkan Foto Digital dari Kad Memori Anda ke Komputer Anda dengan Adapter Kad PC

Banyak komputer riba mempunyai slot untuk menyambungkan peranti PC Card (seperti modem). Anda boleh membeli penyesuai untuk kad memori anda supaya mereka boleh muatkan slot tersebut. Selepas anda memasang perisian penyesuai (ikuti arahan yang disertakan dengan penyesuai anda), memindahkan fail imej ke komputer anda adalah satu snap: