Rumah > Artikel > hujung hadapan web > AOP (pengaturcaraan berorientasikan aspek) dan OOP (pengaturcaraan berorientasikan objek) yui3_YUI.Ext berkaitan
Pertama sekali, sila letakkan tangan anda di dada anda dan renungkan: Adakah saya jatuh cinta dengan kehidupan, atau adakah saya terperangkap dalam kehidupan?
Saya belum mengetahui jawapannya, anda boleh membaca yang berikut. Dari sudut semantik, ungkapan yang berbeza dari perkara yang sama boleh mencerminkan perspektif subjektif orang yang berbeza Dari sudut pandangan falsafah, pandangan dunia mempengaruhi metodologi Kami melihat sesuatu dari sudut yang berbeza dan kadangkala membuat kesimpulan yang bercanggah sama sekali, yang mempengaruhi cara kita melakukannya perkara. Kaedah dan kod tingkah laku adalah seperti ini dalam kehidupan sebenar, dan lebih-lebih lagi dalam bahasa pengaturcaraan yang berwarna-warni Model pengaturcaraan penuh dengan pelbagai simulasi dunia sebenar, termasuk berorientasikan proses, berorientasikan objek dan berorientasikan aspek. Kita mungkin sudah biasa dengan berorientasikan proses dan berorientasikan objek Perkataan Inggeris untuk aspek ialah aspek (kadang-kadang dari segi terjemahan, saya merasakan bahawa menggunakan aspek lebih sesuai untuk menyatakan konotasi aspek).
Untuk pautan ke AOP, lihat di sini:
http://ms.wikipedia.org/wiki/Aspect-ori ... rogramming
Acara tersuai dalam YUI3 melaksanakan AOP
http://developer.yahoo.com/yui/3/event
Apakah hirisan? Untuk memberi contoh mudah, setiap hari kita berulang-alik ke tempat kerja, menaiki kereta api bawah tanah, menaiki bas, dating dengan teman wanita kita, bermain permainan di kafe Internet, pergi ke pawagam untuk menonton wayang..., kita perlu lakukan. banyak perkara dalam sehari, semua orang adalah Objek, semua yang kita lakukan adalah Kaedah Objek ini, contohnya,
甲.上班();<br>乙.坐地铁();<br>丙.看电影();
Malah, kita boleh melihatnya dari sudut lain Syarikat memerlukan pekerja untuk datang ke tempat kerja, transit kereta api memerlukan semua orang untuk mengambilnya, dan pawagam menayangkan filem kepada semua orang. Ini menjadi:
公司.need(甲)<br>地铁.carry(乙);<br>电影院.放电影给(丙);
Dari sudut pandangan ini, bukan sahaja individu A, B, dan C adalah objek, tetapi syarikat, kereta bawah tanah, dan panggung wayang juga merupakan objek. Dalam pengaturcaraan js, program ini secara amnya tidak besar, jadi ia mungkin tidak mencapai tahap di mana abstraksi tahap aspek diperlukan. Tetapi prinsip didorong peristiwanya mudah mengingatkan AOP Contoh sebelumnya dalam js mungkin:
someone.dosth();//OOPobject.fire('event',someone);//AOP
Jika dilihat di luar konteks, kod di atas masih jauh dari segi semantik. Cuma, banyak rangka kerja js merangkumkan ciri kelebihan pengaturcaraan aspek ke dalam kaedah, yang menyebabkan banyak mengelirukan orang. Seperti mengikat acara. Apabila pelaksanaan fungsi foo tamat, laksanakan myfoo dan tambah pemantauan untuk foo tanpa mengubah suai
var foo = function(){ //some code here }; jQuery.aop.after(foo,function(){ //added code here });
Kedua-dua jquery dan prototaip melaksanakan pengikatan fungsi mudah ini. aop jquery ada di sini. Tetapi dalam yui3, AOP dinaikkan pangkat kepada mekanisme dalaman acara tersuai, yang boleh dilihat di mana-mana dalam kod sumber. Ini membantu dalam memahami mekanisme penggunaan semula kod yui3. Justru berkat abstraksi inilah acara tersuai yui3 sangat berkuasa dan fleksibel. Berbanding dengan OOP, kelebihan AOP ialah "hiasan" yang tidak mengganggu, tetapi dalam kebanyakan kes, tidak disyorkan untuk menggunakan AOP untuk menulis kod terlebih dahulu. Mari kita lihat contoh ini: Tabiat hidup setiap orang adalah sangat serupa Berikut adalah empat tingkah laku sebagai contoh: pergi ke sekolah, pergi ke sekolah, menjemput perempuan, dan bermain permainan. Kebarangkalian setiap peristiwa berlaku sama. B adalah seorang yang tamak. Kanak-kanak yang bermain hanya pergi ke kafe Internet untuk bermain permainan dan mengambil kanak-kanak perempuan pengalaman. Dia selalu melakukan dua perkara pada masa yang sama Apabila dia pergi ke sekolah Menjemput perempuan dan bermain permainan selepas sekolah. Di sini, div digunakan untuk mewakili setiap orang, dan onmouseover digunakan untuk mencetuskan setiap peristiwa.
Menggunakan kaedah OOP, struktur atur cara hendaklah seperti ini:
Kod ada di sini: yui_oop.htm
Apabila "pelik" di sini mewarisi daripada "orang biasa", mereka mencapai tujuan membebankan melalui penulisan semula kod, yang jelas melanggar prinsip tidak mengganggu. Mari lihat idea AOP:
Kod ada di sini: yui_aop.htm
Kilang keluaran acara disarikan di sini, yang digunakan untuk mengendalikan pengeluaran acara secara khusus Objek trek hayat yang dijana olehnya memantau semua orang dan menangkap pelbagai gelagat setiap orang. Kilang menggunakan pengikatan pendengar bagi fungsi yang disebutkan di atas apabila menjana "landasan kehidupan orang yang pelik". Membandingkan OOP dan AOP daripada contoh ini, kerumitan kedua-duanya adalah serupa, tetapi AOP mempunyai idea yang lebih luas dan kodnya lebih fleksibel.