Interpreter Desain Pola
Oleh
chmood
Maksud
Mengingat bahasa, mendefinisikan representasi untuk tata
bahasa bersama dengan juru yang menggunakan representasi untuk menafsirkan
kalimat dalam bahasa.
Memetakan domain ke bahasa, bahasa untuk tata bahasa, dan
tata bahasa untuk desain berorientasi objek hirarkis.
Sebuah kelas masalah terjadi berulang kali dalam domain yang
jelas dan dipahami dengan baik. Jika domain yang ditandai dengan
"bahasa", maka masalah bisa dengan mudah dipecahkan dengan
interpretasi "mesin".
Pola Interpreter membahas: mendefinisikan bahasa domain
(yaitu masalah karakterisasi) sebagai tata bahasa yang sederhana, yang mewakili
aturan domain sebagai kalimat bahasa, dan menafsirkan kalimat ini untuk
memecahkan masalah. Pola ini menggunakan kelas untuk mewakili setiap aturan
tata bahasa. Dan karena tata bahasa biasanya hirarkis dalam struktur, hirarki
warisan dari kelas aturan peta baik.
Kelas dasar abstrak menentukan metode menafsirkan (). Setiap
subclass beton mengimplementasikan menafsirkan () dengan menerima (sebagai
argumen) keadaan saat aliran bahasa, dan menambahkan kontribusinya terhadap
proses pemecahan masalah.
Interpreter menunjukkan pemodelan domain dengan tata bahasa
rekursif. Setiap aturan dalam tata bahasa yang bersangkutan merupakan
'komposit' (aturan yang merujuk aturan lain) atau terminal (simpul daun dalam
struktur pohon). Interpreter bergantung pada traversal rekursif dari pola
Komposit untuk menafsirkan 'kalimat' itu diminta untuk proses.
Pola Interpreter mendefinisikan representasi gramatikal
untuk bahasa dan juru bahasa untuk menafsirkan tata bahasa. Musisi adalah
contoh Juru. Nada suara dan durasinya dapat direpresentasikan dalam notasi
musik pada staf. Notasi ini menyediakan bahasa musik. Musisi bermain musik dari
skor mampu mereproduksi lapangan asli dan durasi masing-masing suara diwakili.
Periksa daftar
Memutuskan apakah "bahasa kecil" menawarkan
pengembalian dibenarkan atas investasi.
Mendefinisikan tata bahasa untuk bahasa.
Memetakan setiap produksi di tata bahasa untuk kelas.
Mengatur suite kelas ke dalam struktur pola Komposit.
Mendefinisikan metode menafsirkan (Konteks) dalam hirarki
Composite.
Objek Konteks merangkum keadaan saat input dan output
sebagai mantan parsing dan yang terakhir adalah akumulasi. Hal ini dimanipulasi
oleh masing-masing kelas tata bahasa sebagai "menafsirkan" proses
mengubah input menjadi output.
Aturan praktis
Dipertimbangkan dalam bentuk yang paling umum (yaitu operasi
didistribusikan melalui hirarki kelas berdasarkan pola Komposit), hampir setiap
penggunaan pola Composite juga akan berisi pola Interpreter. Tapi pola
Interpreter harus disediakan untuk kasus-kasus di mana Anda ingin untuk
berpikir hirarki kelas ini sebagai mendefinisikan bahasa.
Interpreter dapat menggunakan Negara untuk menentukan
konteks parsing.
Pohon sintaks abstrak Interpreter adalah Komposit (karena
itu Iterator dan Pengunjung juga berlaku).
Simbol terminal dalam pohon sintaks abstrak Interpreter
dapat dibagi dengan kelas terbang.
Pola tidak membahas parsing. Ketika tata bahasa sangat
kompleks, teknik lain (seperti parser) yang lebih tepat.
Category
Komentar