Pereka bahasa mungkin merasakan bahawa ini meningkatkan kerumitan model akses antara muka.
Adalah sangat sukar untuk kelas yang bertanggungjawab melaksanakan antara muka Jika pelaksanaan dan antara muka tidak berada dalam pakej yang sama, patutkah anda melaksanakan kaedah yang dilindungi?
Saya akan menggunakan dua contoh untuk menggambarkan di bawah yang pertama membuatkan anda rasa kaedah antara muka yang dilindungi tidak masuk akal. Yang satu lagi membuatkan anda berfikir, ia tidak masuk akal sama sekali.
Sebagai contoh, terdapat sample.interface di bawah bungkusan ISomething.
package a.place.of.nowhere;
// some code tries to use ISomething
ISomething someting = initializeSomething();
something.foo1(); // 抱歉,foo1是被保护的,和你不是一个package的,你滚吧。
// ME: shit... if I cannot use anything of this interface, why the heck you expose this interface to me...
Malah kurang masuk akal:
package a.place.of.nowhere;
// some code tries to implements ISomething
class SomethingImpl implements ISomething {
// 抱歉,尽管你想implement foo1这个接口方法,但是由于你在a.place.of.nowhere这个package,foo1()对你是不可见的。走人吧。
protected void foo1() {...}
Dengan cara ini, pelaksanaan kelas dan antara muka akan berada di bawah satu pakej. Apakah ini? Saya mungkin perlu melaksanakan berbilang antara muka, tetapi saya tidak boleh melakukannya secara berasingan. . .
Antara muka memainkan lebih banyak peranan dalam kaedah reka bentuk seni bina sistem, dan digunakan terutamanya untuk menentukan kontrak komunikasi antara modul. Kelas abstrak memainkan peranan dalam pelaksanaan kod dan digunakan terutamanya untuk mencapai penggunaan semula kod.
Abstrak dan antara muka digunakan dalam situasi yang berbeza menggantikan premis mewarisi parameter, tetapi sasarannya ialah kelas induk langsung atau tidak langsung, dan kebenaran dilindungi dibenarkan. Antara muka biasanya digunakan untuk panggilan balik dalam kelas yang berbeza, seperti pendengar Jika ia mempunyai kebenaran yang dilindungi, walaupun anda mendapat contoh pendengar, anda tidak boleh mendapatkan kaedahnya, jadi panggilan balik itu sendiri tidak bermakna. Sedikit pendapat peribadi, sila nyatakan jika terdapat sebarang kesilapan
Apakah antara muka? Antara muka ditulis sebagai antara muka, yang digunakan untuk interaksi dengan dunia luar Jika anda menulisnya sebagai dilindungi, bagaimana anda boleh berinteraksi dengan dunia luar?
Antaramuka digunakan untuk menetapkan bahawa objek yang dilalui mesti melaksanakan kaedah tertentu Jika kaedah yang dilaksanakan tidak boleh dipanggil, maka apakah maksud penetapan ini? Ia tidak boleh dipanggil pula, kerana objeknya adalah sama tidak kira apa yang anda pakai.
Antara muka adalah untuk pelaksanaan Ia adalah orang luar, bukan hubungan warisan, bukan saudara terdekat Jika wang mata wang=1^n, anda tidak boleh memberinya bahagian wang, dan dia tidak boleh menikmatinya. Protect kelihatan kepada subkelas yang diwarisi Jika ia adalah orang anda sendiri, warisi sahaja semua wang kepadanya. Jika antara muka ditetapkan untuk melindungi, maka ia adalah perempuan simpanan atau perempuan simpanan, yang menyalahi undang-undang.
Tekaan peribadi:
Pereka bahasa mungkin merasakan bahawa ini meningkatkan kerumitan model akses antara muka.
Adalah sangat sukar untuk kelas yang bertanggungjawab melaksanakan antara muka Jika pelaksanaan dan antara muka tidak berada dalam pakej yang sama, patutkah anda melaksanakan kaedah yang dilindungi?
Saya akan menggunakan dua contoh untuk menggambarkan di bawah yang pertama membuatkan anda rasa kaedah antara muka yang dilindungi tidak masuk akal. Yang satu lagi membuatkan anda berfikir, ia tidak masuk akal sama sekali.
Sebagai contoh, terdapat
sample.interface
di bawah bungkusanISomething
.Kes berikut adalah pelik.
Malah kurang masuk akal:
Dengan cara ini, pelaksanaan kelas dan antara muka akan berada di bawah satu pakej. Apakah ini? Saya mungkin perlu melaksanakan berbilang antara muka, tetapi saya tidak boleh melakukannya secara berasingan. . .
Antara muka memainkan lebih banyak peranan dalam kaedah reka bentuk seni bina sistem, dan digunakan terutamanya untuk menentukan kontrak komunikasi antara modul.
Kelas abstrak memainkan peranan dalam pelaksanaan kod dan digunakan terutamanya untuk mencapai penggunaan semula kod.
Abstrak dan antara muka digunakan dalam situasi yang berbeza menggantikan premis mewarisi parameter, tetapi sasarannya ialah kelas induk langsung atau tidak langsung, dan kebenaran dilindungi dibenarkan. Antara muka biasanya digunakan untuk panggilan balik dalam kelas yang berbeza, seperti pendengar Jika ia mempunyai kebenaran yang dilindungi, walaupun anda mendapat contoh pendengar, anda tidak boleh mendapatkan kaedahnya, jadi panggilan balik itu sendiri tidak bermakna.
Sedikit pendapat peribadi, sila nyatakan jika terdapat sebarang kesilapan
Apakah antara muka? Antara muka ditulis sebagai antara muka, yang digunakan untuk interaksi dengan dunia luar Jika anda menulisnya sebagai dilindungi, bagaimana anda boleh berinteraksi dengan dunia luar?
Antaramuka digunakan untuk menetapkan bahawa objek yang dilalui mesti melaksanakan kaedah tertentu Jika kaedah yang dilaksanakan tidak boleh dipanggil, maka apakah maksud penetapan ini? Ia tidak boleh dipanggil pula, kerana objeknya adalah sama tidak kira apa yang anda pakai.
Antara muka adalah untuk pelaksanaan Ia adalah orang luar, bukan hubungan warisan, bukan saudara terdekat Jika wang mata wang=1^n, anda tidak boleh memberinya bahagian wang, dan dia tidak boleh menikmatinya.
Protect kelihatan kepada subkelas yang diwarisi Jika ia adalah orang anda sendiri, warisi sahaja semua wang kepadanya.
Jika antara muka ditetapkan untuk melindungi, maka ia adalah perempuan simpanan atau perempuan simpanan, yang menyalahi undang-undang.