Sistem Berorientasi Objek, Paradigma, dan Filsafat
(black7375.tistory.com)-
Perbedaan terbesar antara class dan prototype adalah cara pembuatan objek [class -> instance vs objek -> objek hasil salinan].
-
Kesamaan terbesar keduanya adalah sama-sama berorientasi objek, yakni membagi program ke dalam satuan bernama objek dan membuatnya saling berinteraksi.
-
Cara paling sederhana untuk melakukan enkapsulasi dengan baik, yang merupakan inti dari orientasi objek, adalah melakukan abstraksi dengan baik.
-
Abstraksi dapat dipikirkan dengan membaginya ke sifat yang berpusat pada data (OOP klasik), bentuk (tipe), keadaan (desain berorientasi data), serta waktu yang berpusat pada relasi (berorientasi prosedur), perilaku (fungsional), definisi (logika), situasi (domain-driven design, AOP), dan sebagainya.
-
Untuk mengklasifikasikan dan merancang dengan baik, akan sangat membantu jika ada pemahaman tentang berbagai kategori yang membuat kita menyadari bentuk cara berpikir [contoh: 12 kategori dalam 4 kelompok Kant].
-
-
Filsafat dan paradigma
-
Prosedural: waktu memengaruhi sebagian besar abstraksi, dan sintaks seperti Goto yang membuat konteks bercampur bukanlah hal yang baik.
-
Fungsional: karena berusaha mengekspresikannya dalam bentuk perilaku, ia memiliki keterkaitan yang sangat dalam dengan tipe (bentuk).
-
Logika: logika dibangun dengan fakta dan aturan, dan dengan melakukan kueri kita bisa memperoleh hasil dari logika predikat.
-
OOP tradisional: intuitif. Namun, mustahil mengetahui atribut secara sempurna.
-
Desain berorientasi data: berbeda dari pendekatan fungsional yang mencoba menangani state dari logika, pendekatan ini berusaha mengurangi state pada komputer itu sendiri. Ini meningkatkan cache hit dan membawa peningkatan performa.
-
Domain-driven design: tidak seperti OOP tradisional, desain dibuat berbeda sesuai domain dan konteksnya (mirip teori gambar-semantik penggunaan), dan implementasi menjadi lebih mudah jika menggunakan AOP yang melakukan dependency injection pada subdomain.
-
-
MVP
-
Pembuatan prototipe: harus mencakup fungsi-fungsi penting, dan bisa berbeda bergantung pada sudut pandang desainer, developer, keuangan, dan lain-lain. Ini adalah persyaratan tipikal berdasarkan tingkat kemiripan dengan produk yang dianggap penting oleh banyak orang.
-
MVP: harus dapat digunakan dengan tingkat kelengkapan minimum yang terjamin, dan harus dirancang mirip dengan produk yang dianggap sebagai tahap akhir.
-
-
Orientasi objek dan eksistensi
-
Plato: berpendapat bahwa sifat universal itu tidak berubah dan nyata adanya, sementara eksistensi individual hadir dalam keadaan tanpa sepenuhnya memiliki sifat universal tersebut.
-
Aristoteles: berpendapat bahwa hanya entitas individual yang merupakan substansi fundamental, sedangkan universal adalah representasi yang muncul dalam hubungan hierarkis/inklusif.
-
Class-instance mirip dengan teori Idea Plato, sementara prototype-objek hasil salinan mirip dengan teori substansi Aristoteles.
-
Tujuan awal yang ingin saya tulis adalah
-
OOP tradisional mirip dengan teori gambar, sedangkan domain-driven design mirip dengan semantik penggunaan.
-
Class-instance mirip dengan teori Idea Plato, sementara prototype-objek hasil salinan mirip dengan teori substansi Aristoteles.
hanya dua hal itu, tetapi ternyata menjadi jauh lebih panjang dari yang saya kira.
Jika sama sekali tidak punya pengetahuan latar, ini mungkin terasa agak sulit.
6 komentar
Mengapa JavaScript memilih prototype?
https://id.news.hada.io/topic?id=5532
Ini adalah tulisan yang saya buat setelah melihatnya.
Mari kita coba membacanya sambil membandingkannya seperti pada tulisan ini!
Terima kasih!!
Oh? Sepertinya tidak bisa memasukkan beberapa spasi ya T_T
Ah, ada beberapa kasus yang memang sengaja memakan ruang..
Baris kosong dan beberapa spasi kosong sudah saya atur agar dikurangi, huhu
Saya mengerti.
Berikutnya saya perlu mempertimbangkannya saat memposting.