Swiss Army Knife

chmood


SwissArmy Knife
antipattern masalah

    Sebuah Swiss Army Knife, juga dikenal sebagai Kitchen Sink, adalah sebuah antarmuka kelas terlalu kompleks. Desainer mencoba untuk menyediakan semua kemungkinan penggunaan kelas. Dalam upaya itu, dia menambahkan sejumlah besar tanda tangan antarmuka dalam usaha sia-sia untuk memenuhi semua kebutuhan.

Contoh-contoh nyata dari Swiss Army Knife termasuk dari puluhan hingga ribuan tanda tangan metode untuk kelas tunggal. Perancang mungkin tidak memiliki abstraksi yang jelas atau tujuan untuk kelas, yang diwakili oleh kurangnya fokus dalam antarmuka.

Swiss Army Pisau yang lazim di interface perangkat lunak komersial, di mana vendor sedang berusaha untuk membuat produk mereka berlaku untuk semua aplikasi yang mungkin
.



Antipattern ini bermasalah karena mengabaikan kekuatan mengelola kompleksitas, yaitu, antarmuka rumit sulit bagi programmer lain untuk memahami, dan mengaburkan bagaimana kelas ini dimaksudkan untuk digunakan, bahkan dalam kasus sederhana. Konsekuensi lain dari kompleksitas termasuk kesulitan debugging, dokumentasi, dan pemeliharaan.

Solusi refactored
   Seringkali, interface dan standar kompleks ditemui yang harus dimanfaatkan dalam proyek pengembangan perangkat lunak; Oleh karena itu, penting untuk mendefinisikan konvensi untuk menggunakan teknologi ini sehingga manajemen arsitektur aplikasi kompleks tidak terganggu.

    Ini disebut membuat profil. Profil adalah konvensi didokumentasikan menjelaskan bagaimana menggunakan teknologi yang kompleks. Seringkali, profil adalah rencana implementasi pelaksanaan rincian teknologi. Dengan profil, dua pengembang independen dapat menggunakan teknologi yang sama, dengan kemungkinan mencapai software interoperable.

    Sebuah profil dari antarmuka software mendefinisikan subset dari tanda tangan yang digunakan, dan harus mencakup konvensi untuk nilai parameter. Dengan kata lain, profil mengidentifikasi nilai-nilai literal yang bisa dilalui di setiap parameter.

    Selain itu, profil mungkin diperlukan untuk menentukan perilaku dinamis dari aplikasi yang menggunakan antarmuka. Ini termasuk deskripsi dan spesifikasi dari urutan eksekusi, panggilan metode, dan penanganan eksepsi.

Variasi
   Sebuah Swiss Army Knife berbeda dari Blob antipattern di bahwa mungkin ada beberapa Pisau Swiss Army dalam desain tunggal. Selain itu, maksud dari Swiss Army Knife adalah bahwa desainer yang mengekspos kompleksitas dalam upaya sia-sia untuk mengatasi semua kebutuhan mendatang untuk kelas. The Blob adalah objek tunggal yang memonopoli proses atau data dalam suatu sistem.


 



Komentar