Prinsip inversi ketergantungan di JAVA
Salah satu prinsip paling mendasar dari hukum Amerika adalah "semua orang setara." Kami tidak peduli melalui perjuangan atau pertumpahan darah apa hal itu dicapai. Kami hanya memahaminya sebagai metode JAVA, yang didefinisikan sebagai berikut:
boolean final publik semua orang sama (orang 1, orang 2){
kembali benar;
}
Meskipun undang-undang di setiap negara bagian mungkin berbeda, seperti Hukum Dasar Amerika Serikat, New York dapat disebut Hukum Dasar New York. Seharusnya memiliki hubungan seperti itu: Hukum Dasar New York mewarisi Hukum Dasar Amerika Menyatakan, tetapi tidak mengizinkan penulisan ulang metode ini.
Dalam hal penegakan hukum di New York, hal-hal berikut ini digunakan:
Hukum Dasar Amerika Serikat = Hukum Dasar New York
Menyebut metode “semua orang setara” di mana pun akan menghasilkan “benar”, artinya prinsip kesetaraan setiap orang tidak dapat diubah di mana pun. Ini adalah keputusan makro yang menentukan mikro, dan tidak akan berubah antara laki-laki dan perempuan karena Baru York. Ketimpangan perempuan.
Misalnya, suatu negara juga mempunyai hukum dasar dan metode kesetaraan bagi semua orang. Definisinya harus sebagai berikut:
boolean publik semua orang sama (orang 1, orang 2){
kembali benar;
}
Misalnya, suatu tempat di suatu negara juga mempunyai hukum dasar. Hukum dasar suatu tempat juga merupakan warisan dari hukum dasar suatu negara tertentu, namun karena cara “setiap orang sama” belum final, maka hukum dasar suatu tempat juga merupakan warisan dari hukum dasar suatu negara. itu dapat ditulis ulang. Bila diterapkan di tempat tertentu, dapat berupa:
Hukum Dasar suatu negara = Hukum Dasar baru di suatu tempat
atau
Hukum Dasar suatu tempat = Hukum Dasar baru suatu tempat
Mungkin ketika Undang-Undang Dasar suatu tempat mewarisi Undang-Undang Dasar suatu negara, cara “semua orang setara” ditulis ulang dan diubah menjadi:
boolean publik semua orang sama (orang 1, orang 2){
if(orang 1==orang dari tempat tertentu&& orang 2==orang dari tempat tertentu){
if(orang 1 dan orang 2 mempunyai atribut yang sama){
if(orang 1 dan orang 2 sama, hanya saja keduanya bukan orang yang sama){
jika(tidak ada orang lain yang terjadi){
kembali benar;
}kalau tidak{
kembali salah;
}
}kalau tidak{
kembali salah;
}
}kalau tidak{
kembali salah;
}
}kalau tidak{
kembali salah;
}
}
Mari kita bicara tentang prinsip inversi ketergantungan, menurut "JAVA dan Pola":
Tingkat abstrak berisi logika bisnis dari sistem aplikasi dan keputusan strategis tingkat makro yang penting bagi keseluruhan sistem dan merupakan cerminan dari keniscayaan; sedangkan tingkat konkret berisi beberapa algoritma dan logika terkait implementasi kecil, serta taktis keputusan melibatkan peluang yang besar. Tingkat kode tertentu akan sering berubah, dan kesalahan tidak dapat dihindari. Tingkat abstraksi tergantung pada tingkat konkritnya. Perubahan algoritma menggunakan detail pada tingkat tertentu segera mempengaruhi logika bisnis makroskopis pada tingkat abstraksi, menyebabkan mikroskopis menentukan makroskopis, taktik untuk menentukan strategi, dan peluang untuk menentukan kebutuhan. Ini konyol.
Setelah membaca ini, Anda akan memahami mengapa Anda harus menggunakannya lebih sering saat menulis kode di masa mendatang:
logika abstrak = logika konkrit baru
Gunakan sesedikit mungkin:
logika spesifik = logika spesifik baru
Ini adalah pemrograman berorientasi antarmuka yang saat ini dianjurkan. Berikut adalah contoh praktis lain dari pemrograman berorientasi antarmuka:
Anda biasanya harus lebih sering menggunakan Daftar. Daftar itu sendiri adalah antarmuka yang diwarisi dari Koleksi.
Daftar daftar=Vektor baru();
Daftar yang dideklarasikan dengan cara ini sebenarnya adalah tipe Vector, karena Vector adalah subkelasnya. Menurut prinsip substitusi Liskov, subkelas dapat diterima dimanapun kelas induknya dapat diterima. Saat ini, Daftar sedang disinkronkan, dan tentu saja akan dipengaruhi oleh kinerja tertentu. Jika Anda mengubah ke lingkungan yang tidak memerlukan sinkronisasi di kemudian hari, Anda hanya perlu mengubah kode di atas menjadi seperti ini:
Daftar daftar=New ArrayList();
Tidak ada kode lain yang perlu diubah. Tipe Daftar sebenarnya saat ini adalah ArrayList.
Dari sini, kita dapat melihat mengapa pemrograman berorientasi antarmuka disukai oleh para desainer, karena setelah mereka menyediakan antarmuka, pelaksana mengimplementasikan kelas tertentu berdasarkan antarmuka, dan tidak perlu khawatir pelaksana akan merusak integritas aslinya. program, dan desainer tidak akan pernah Hanya peduli dengan metode di antarmuka, jangan khawatir tentang metode tambahan di kelas konkret. Namun hal ini memerlukan biaya tambahan, seperti penambahan kelas JAVA. Jika kelas abstrak dapat memberikan efisiensi yang lebih rendah, maka lebih baik menggunakan sambungan konkrit, seperti kelas alat.