Swiss Army Knife
Oleh
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 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.
Category
Komentar