Rumah Kewangan Peribadi Pemahaman Pattern Observer - dummies

Pemahaman Pattern Observer - dummies

Isi kandungan:

Video: Pemahaman Asas Candlestick pattern 2025

Video: Pemahaman Asas Candlestick pattern 2025
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 untuk memperbaiki pencahayaan dengan bayang-bayang dan sorotan di Photoshop CS6 - dummies

Bagaimana untuk memperbaiki pencahayaan dengan bayang-bayang dan sorotan di Photoshop CS6 - dummies

Bayang-bayang / sorotan pelarasan adalah ciri yang hebat Dalam Adobe Photoshop CS6 yang menawarkan kaedah yang cepat dan mudah untuk membetulkan pencahayaan. Perintah ini berfungsi dengan baik pada subjek yang difoto dengan sumber cahaya yang berasal dari belakang, memberikan subjek yang latar depan gelap. Pelarasan ini juga boleh membawa terperinci di kawasan bayangan kasar. Untuk ...

Bagaimana Membekukan dan Kawasan Imej Thaw di Photoshop CS6 - dummies

Bagaimana Membekukan dan Kawasan Imej Thaw di Photoshop CS6 - dummies

Cecair dalam Photoshop CS6 ke melindungi kawasan dengan beku, dan kawasan yang tidak dilindungi oleh pencairan, patut dilihat lebih dekat. Pertimbangkan pembekuan yang bersamaan dengan pelekat. Berikut adalah ringkasan perkara-perkara yang perlu anda ketahui: Cara paling mudah untuk membekukan / melepaskan adalah dengan menggunakan alat Freeze Mask dan Thaw Mask untuk melukis kawasan anda ...

Bagaimana Mendapatkan Sebaliknya Lebih Baik di Photoshop CS6 Arahan - dummies

Bagaimana Mendapatkan Sebaliknya Lebih Baik di Photoshop CS6 Arahan - dummies

Jika anda ingin menyesuaikan nada nilai imej dalam Photoshop CS6 atau warna yang betul, arahan Level boleh memberi anda kontras yang lebih baik dan alat untuk anda. Ia menawarkan lebih banyak kawalan daripada arahan Auto Tone. Perintah Tahap juga merupakan alat yang lebih canggih daripada kawalan Kecerahan / Kontras kerana anda boleh ...

Pilihan Editor

Cara Menggunakan Swatches dalam Adobe InDesign CS6 Dokumen - dummies

Cara Menggunakan Swatches dalam Adobe InDesign CS6 Dokumen - dummies

Anda boleh membuat, memohon dan mengedit warna-warna dari panel Swatches dalam Adobe InDesign Creative Suite 6. Selain menggunakan panel ini untuk mencipta dan mengedit tints dan kecerunan dan kemudian menerapkannya pada objek pada halaman, anda juga boleh membuat dan menyimpan warna pepejal. Pilih Window → Warna → Swatch untuk membuka atau mengembangkan Swatches ...

Cara Menggunakan Grid dalam bingkai teks Adobe InDesign CS6 - dummies

Cara Menggunakan Grid dalam bingkai teks Adobe InDesign CS6 - dummies

Mengandungi apa-apa teks yang anda tambah pada penerbitan . Anda boleh membuat bingkai teks baru dalam pelbagai cara. Dalam Adobe InDesign CS6, anda boleh menambah teks kepada bentuk kreatif yang anda lukis, dengan itu mengubahnya menjadi bingkai teks. Membuat dan menggunakan bingkai teks dalam penerbitan adalah penting kerana anda biasanya menggunakan ...

Cara Menggunakan Alat Transformasi Percuma dalam InDesign CS6 Documents - dummies

Cara Menggunakan Alat Transformasi Percuma dalam InDesign CS6 Documents - dummies

Alat dalam Adobe InDesign membolehkan anda mengubah objek dengan cara yang berbeza. Menggunakan alat Transformasi Percuma, anda boleh memindahkan, memutar, ricih, mencerminkan, dan objek skala. Fungsi Alat Transformasi Percuma diwakili dalam InDesign oleh kursor yang berbeza. Untuk menggerakkan objek dengan menggunakan alat Transform Free, ikuti langkah berikut:

Pilihan Editor

Bagaimana untuk Memantau Media Sosial dengan Google Alerts - dummies

Bagaimana untuk Memantau Media Sosial dengan Google Alerts - dummies

Anda ingin mempunyai idea yang baik dari apa yang sedang dibincangkan di media sosial dalam bidang perniagaan anda, mengenai produk dan perkhidmatan anda, atau tentang persaingan anda. Anda boleh memantau ulasan media sosial dengan Google Alerts. Orang-orang jenis di Google mempunyai perkhidmatan yang memberitahu anda apabila Google mendapati hasil baru, halaman web, ...

Cara Menyediakan Homepage Netvibes untuk Pemasaran Dalam Talian - dummies

Cara Menyediakan Homepage Netvibes untuk Pemasaran Dalam Talian - dummies

Netvibes boleh alat yang berguna kepada pemasar web dan anda harus bermula dengan membuat laman utama. Jika anda suka antara muka yang sedikit lebih digilap, mahukan lebih banyak pilihan penyesuaian, atau tidak selesa menggunakan Google kerana kebimbangan privasi (sesetengah orang bukan sahaja), Netvibes adalah pilihan yang sangat baik. Menyediakan laman web Netvibes hanya mengambil ...

Cara Menetapkan Senarai Perniagaan di Laman Tinjauan - dummies

Cara Menetapkan Senarai Perniagaan di Laman Tinjauan - dummies

Merupakan langkah penting dalam membina perdagangan laman web media sosial adalah untuk mencari perniagaan anda di laman ulasan dan menuntut halaman anda! Yelp sepatutnya menjadi perhentian pertama anda. Dalam angka tersebut, disenaraikan di antara komen dan data mengenai perniagaan, anda boleh melihat jemputan terbuka untuk pemilik perniagaan untuk mendapatkan semula halaman tersebut. ...