Pertanyaan yang diberi tag «interfaces»

Pertanyaan tentang pertimbangan desain terkait antarmuka, seperti pemrograman ke antarmuka.

8
Apakah antarmuka yang menampilkan fungsi async adalah abstraksi yang bocor?
Saya membaca buku Prinsip Ketergantungan Injeksi, Praktek, dan Pola dan saya membaca tentang konsep abstraksi bocor yang dijelaskan dengan baik dalam buku ini. Hari ini saya refactoring basis kode C # menggunakan injeksi dependensi sehingga panggilan async digunakan alih-alih memblokir yang. Melakukannya saya sedang mempertimbangkan beberapa antarmuka yang mewakili abstraksi …

5
Apakah masuk akal untuk mendefinisikan antarmuka jika saya sudah memiliki kelas abstrak?
Saya memiliki kelas dengan beberapa fungsi standar / bersama. Saya gunakan abstract classuntuk itu: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } protected …


2
Antarmuka kerangka kerja koleksi java di unsupportedOperationException
Melihat melalui Java Collections Framework, saya perhatikan beberapa antarmuka memiliki komentar (optional operation). Metode-metode ini memungkinkan kelas implementasi melalui UnsupportedOperationExceptionjika mereka tidak ingin mengimplementasikan metode itu. Contoh dari ini adalah addAllmetode dalam Set Interface. Sekarang, seperti yang dinyatakan dalam rangkaian pertanyaan ini, antarmuka adalah kontrak yang menentukan untuk apa yang …



1
Mengapa CharSequence tidak mendefinisikan berisi (CharSequence)?
Ini berlaku untuk Java SE & Android, karena kontraknya identik. Dokumentasi CharSequence untuk Java SE Dokumentasi CharSequence untuk Android CharSequencetidak mendefinisikan suatu contains(CharSequence)metode. Saya tidak dapat menemukan alasan mengapa, dan memasukkannya akan sangat berguna, mencegah perlunya menelepon CharSequence#toString()untuk memeriksa urutan karakter. Sebagai contoh, di Android, pengguna dipaksa menelepon Editable#toString()untuk melihat …

5
Antarmuka terpisah untuk metode mutasi
Saya telah bekerja pada refactoring beberapa kode, dan saya pikir saya mungkin telah mengambil langkah pertama ke lubang kelinci. Saya menulis contoh di Jawa, tapi saya kira itu bisa menjadi agnostik. Saya memiliki antarmuka yang Foodidefinisikan sebagai public interface Foo { int getX(); int getY(); int getZ(); } Dan implementasi …


4
Istilah "antarmuka" dalam C ++
Java membuat perbedaan yang jelas antara classdan interface. (Saya percaya C # juga, tapi saya tidak punya pengalaman dengannya). Namun ketika menulis C ++ tidak ada perbedaan yang dipaksakan bahasa antara kelas dan antarmuka. Akibatnya saya selalu melihat antarmuka sebagai solusi untuk kurangnya pewarisan berganda di Jawa. Membuat perbedaan seperti …

3
Bagaimana perbedaan tipe eksistensial dari antarmuka?
Diberi jenis eksistensial T = ∃X.{op₁:X, op₂:X→boolean} dan antarmuka Java generik ini: interface T<X> { X op₁(); boolean op₂(X something); } Apa perbedaan mendasar antara tipe eksistensial dan antarmuka Java? Jelas ada perbedaan sintaksis, dan orientasi objek Java (yang juga mencakup rincian seperti thisparameter tersembunyi dll.). Saya tidak begitu tertarik …

3
Perbedaan antara berbagai Antarmuka Generik Koleksi di C #
Saya telah bermain-main dengan C # untuk Windows dan pengembangan ASP.net MVC untuk beberapa waktu sekarang. Tapi saya masih belum jelas di beberapa daerah. Saya mencoba memahami perbedaan mendasar antara dan masalah kinerja dengan menggunakan dan menukar jenis Antarmuka Koleksi Generik yang serupa . Apa perbedaan mendasar antara IEnumerable<T>, ICollection<T>, …

5
Pola Desain Strategi Yang Dimodifikasi
Saya sudah mulai melihat ke Pola Desain baru-baru ini, dan satu hal yang saya koding akan cocok dengan pola Strategi dengan sempurna, kecuali untuk satu perbedaan kecil. Pada dasarnya, beberapa (tetapi tidak semua) dari algoritma saya, memerlukan satu atau dua parameter tambahan yang diteruskan ke mereka. Jadi saya juga perlu …



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.