Apa keuntungan dan Kerugian Menggunakan Paradigma Pemrograman Berorientasi Aspek [ditutup]

10

Ok jadi inilah pertanyaannya: Apa kelebihan dan kekurangan menggunakan paradigma pemrograman berorientasi aspek.

Keuntungan dan kerugian saya sejauh ini:

Keuntungan:

  • Melengkapi orientasi objek.
  • Modularisasi masalah lintas sektor meningkatkan pemeliharaan kode dan pemahaman.

Kerugian:

  • Bukan konsep yang paling mudah untuk dipahami - tidak terdokumentasi dengan baik seperti OO
  • OO melangkah cukup jauh dalam pemisahan kekhawatiran ...

Adakah yang mau menantang semua ini / menambah milik mereka?

Terima kasih banyak, J

JHarley1
sumber
1
Sudah banyak materi pembelajaran di luar sana. Pendahuluan ke AOP - dotnetslackers.com/articles/net/… . Pelajari PostSharp (kerangka kerja AOP) - programmersunlimited.wordpress.com/postsharp-principals
DustinDavis

Jawaban:

3

Dari sudut pandang seorang programmer yang moto adalah "Keep It Simple Stupid", mengevaluasi penggunaan model seperti itu berbahaya. Untuk apa yang ingin dicapai, itu membuat program jauh lebih sulit untuk dipahami dan akibatnya lebih mudah untuk istirahat.

Kejeniusan pemrograman yang baik adalah dalam kesederhanaannya yang ironis. Program yang kompleks mungkin berhasil, tetapi merupakan mimpi buruk dalam hal pemeliharaan, dan ketika Anda menganggap bahwa 2 / 3rds waktu yang dihabiskan oleh seorang programmer ditempatkan dalam memperbaiki kesalahan dalam program, pada akhirnya tidak membuahkan hasil.

Neil
sumber
2

Mendistribusikan fungsionalitas keluar dari lokus operasi meningkatkan kompleksitas dan masalah tindakan di jarak.

Saya menganggap pendekatan desain seperti itu sebagai sesuatu yang harus dikembangkan karena sistem menuntutnya untuk pengoperasian yang bersih, tidak dirancang pada awalnya.

Paul Nathan
sumber
2

Keuntungan Tambahan (tidak semuanya)

  • Penggunaan kembali kelas dan aspek, berkat modularitas
  • Mengurangi biaya pengkodean berkat modularitas dan penggunaan kembali
  • Kode yang lebih pendek berkat kemampuan untuk memiliki aspek dengan kode yang jika tidak akan diimplementasikan (tersebar) ke beberapa kelas
  • Kemampuan untuk menambahkan perilaku ke kelas tanpa memasukkan kode di dalamnya yang tidak terkait dengan tanggung jawab utamanya
  • Kemampuan untuk mendefinisikan kembali semantik metode / kelas tanpa membiarkan kelas klien mengetahuinya

Kekurangan

  • Runtime overhead saat menggunakan beberapa konstruksi, misalnya cflow
memancarkan
sumber
0

Kerugian: Dukungan rantai alat yang buruk: - debugger dan profiler mungkin tidak tahu tentang "Pemrograman Berorientasi Aspek" karena alasan ini mereka dapat bekerja pada kode seolah-olah semua aspek telah diganti dengan kode prosedural.

pengguna148488
sumber