OOP


1. [Mandatori] Elakkan mengakses pembolehubah statik atau kaedah statik kelas ini melalui rujukan objek kelas. Ini tidak semestinya meningkatkan penghuraian pengkompil kepada skrip.


2 [Wajib] Semua kaedah penggantian mesti dianotasi dengan @Override.

Contoh pembilang: getObject() dan dapatkan 0 object() masalah. Satu ialah huruf O dan satu lagi ialah nombor 0. Tambahkan @Override

untuk menentukan dengan tepat sama ada penggantian itu berjaya. Di samping itu, jika tandatangan kaedah diubah suai dalam kelas abstrak, kelas pelaksanaannya akan segera menyusun dan melaporkan ralat.


3. [Mandatori] Parameter pembolehubah Java boleh digunakan hanya jika ia mempunyai jenis parameter yang sama dan maksud perniagaan yang sama.

Nota: Parameter boleh ubah mesti diletakkan di hujung senarai parameter. (Pelajar digalakkan untuk mengelakkan pengaturcaraan parameter berubah sebanyak mungkin)

Contoh: Public User getUsers(Jenis rentetan, Integer... id)

4 [Mandatori] Pada dasarnya, tandatangan kaedah tandatangan antara muka yang terdedah kepada bahagian luar tidak dibenarkan diubah suai. Elakkan kesan pada pemanggil antara muka. Anotasi @Deprecated mesti ditambah apabila antara muka sudah lapuk dan antara muka baharu atau perkhidmatan baharu mesti dijelaskan dengan jelas.

5 [Wajib] Kelas atau kaedah lapuk tidak boleh digunakan. . Oleh kerana pembekal antara muka jelas merupakan antara muka yang usang, ia wajib menyediakan antara muka baharu pada masa yang sama sebagai pemanggil, ia bertanggungjawab untuk mengesahkan pelaksanaan baharu kaedah usang.


6 [Mandatori] Kaedah sama bagi Objek cenderung untuk membuang pengecualian penunjuk nol Anda harus menggunakan pemalar atau objek dengan nilai tertentu untuk memanggil

sama. Contoh positif: " ujian " .equals(objek);

Contoh pembilang:

object.equals( " test " );

Penjelasan: ..Object #equals (diperkenalkan dalam JDK 7) Kelas utiliti)

7 [Mandatori] Semua perbandingan nilai antara objek kelas pembungkusan daripada jenis yang sama mesti menggunakan kaedah sama.

Penjelasan: Untuk Integer var =? Penghakiman, tetapi semua data di luar julat ini akan dijana pada timbunan dan objek sedia ada tidak akan digunakan semula Ini adalah perangkap yang besar Adalah disyorkan untuk menggunakan kaedah sama untuk penghakiman.


8 [Mandatori] Piawaian penggunaan untuk jenis data asas dan jenis data berpakej adalah seperti berikut:

1) Semua atribut kelas POJO mesti menggunakan jenis data berpakej.

2) Nilai pulangan dan parameter kaedah RPC mesti menggunakan jenis data berbalut.

3) Semua pembolehubah tempatan [disyorkan] menggunakan jenis data asas.

Nota: Atribut kelas POJO tidak mempunyai nilai awal untuk mengingatkan pengguna bahawa mereka mesti menetapkan nilai itu sendiri secara eksplisit apabila mereka perlu menggunakannya Sebarang isu

NPE atau semakan pergudangan dipastikan oleh pengguna.

Contoh positif: Hasil pertanyaan pangkalan data mungkin batal kerana penyahkotak automatik dan penerimaan dengan jenis data asas mempunyai risiko NPE.

Contoh kaunter: Sebagai contoh, paparkan kenaikan dan penurunan jumlah urus niaga, iaitu tambah atau tolak x %, x ialah jenis data asas, dan perkhidmatan RPC dipanggil Apabila panggilan tidak berjaya , nilai lalai dikembalikan, dan halaman memaparkan: 0%, yang tidak munasabah dan harus dipaparkan sebagai sempang -. Oleh itu, nilai nol bagi jenis data yang dibalut boleh mewakili maklumat tambahan, seperti: kegagalan panggilan jauh dan keluar tidak normal.


9 [Wajib] Apabila mentakrifkan kelas POJO seperti DO / DTO / VO, jangan tetapkan sebarang nilai lalai atribut.

Contoh pembilang: Nilai lalai gmtCreate kelas POJO ialah Date(); namun, atribut ini tidak ditetapkan kepada nilai tertentu semasa pengekstrakan data masa penciptaan diubah suai kepada masa semasa.

10 [Mandatori] Apabila menambah atribut baharu pada kelas bersiri, sila jangan ubah suai medan serialVersionUID untuk mengelakkan kegagalan penyahserilan jika ia tidak serasi sepenuhnya dengan peningkatan dan elakkan huru-hara penyahsiran, sila ubah suai nilai serialVersionUID.

Nota: Perhatikan bahawa serialVersionUID yang tidak konsisten akan membuang pengecualian masa jalan bersiri.

11 [Wajib] Dilarang menambah sebarang logik perniagaan dalam kaedah pembinaan Jika terdapat logik permulaan, sila masukkan ke dalam kaedah init.


12 [Wajib] Kelas POJO mesti menulis kaedah toString. Apabila menggunakan alat IDE: source > generate toString

, jika anda mewarisi kelas POJO yang lain, pastikan anda menambah super .

Nota: Apabila pengecualian dilemparkan semasa pelaksanaan kaedah, anda boleh terus memanggil kaedah toString() POJO untuk mencetak nilai atributnya, yang mudah untuk menyelesaikan masalah

.


13. [Cadangan] Apabila menggunakan indeks untuk mengakses tatasusunan yang diperolehi oleh kaedah split String, anda perlu menyemak sama ada terdapat kandungan selepas pembatas terakhir, jika tidak, terdapat risiko melontar IndexOutOfBoundsException.

Arahan:

String str = "a,b,c,,";
String[] ary = str.split(",");
//预期大于 3,结果是 3
System.out.println(ary.length);


14 [Cadangan] Apabila kelas mempunyai berbilang pembina, atau berbilang kaedah dengan nama yang sama, kaedah ini harus diletakkan bersama untuk memudahkan pembacaan.


15 ​​[Disyorkan] Urutan definisi kaedah dalam kelas ialah: kaedah awam atau kaedah dilindungi > kaedah persendirian > kaedah pengambil / penetap.

Explanation: Kaedah -kaedah awam adalah kaedah yang dipanggil dan penyelenggara kelas yang paling prihatin, dan paling baik dipaparkan pada skrin pertama; "mod reka bentuk templat" Secara amnya, tidak perlu memberi perhatian khusus kepada kaedah persendirian di luar Ia adalah pelaksanaan kotak hitam kerana nilai maklumat kaedah adalah rendah, semua kaedah pengambil/penetap Perkhidmatan dan DAO diletakkan di hujung badan kelas.

16 [Cadangan] Dalam kaedah penetap, nama parameter adalah konsisten dengan nama pembolehubah ahli kelas, ini. Dalam kaedah getter/setter, cuba untuk tidak menambah logik perniagaan dan meningkatkan kesukaran menyelesaikan masalah.

Contoh pembilang:

public Integer getData(){
if(true) {
return data + 100;
} else {
return data - 100;
}
}

17 [Cadangan] Dalam badan gelung, gunakan kaedah tambah StringBuilder untuk mengembangkan kaedah sambungan rentetan.

Contoh pembilang:

String str = "start";
for(int i=0; i<100; i++){
str = str + "hello";
}

Penjelasan:

Fail bytecode yang dinyahkompilasi menunjukkan bahawa setiap gelung akan memperbaharui objek StringBuilder, kemudian melaksanakan operasi

tambah, dan akhirnya mengembalikan objek String melalui kaedah toString, menyebabkan pembaziran sumber ingatan.

18. [Cadangan] akhir boleh meningkatkan kecekapan tindak balas program, keadaan mengisytiharkannya sebagai muktamad: 1) Pembolehubah yang tidak perlu ditetapkan semula, termasuk atribut kelas dan pembolehubah setempat.

2) Tambahkan akhir sebelum parameter objek, yang bermaksud titik rujukan tidak dibenarkan diubah suai.


3) Kaedah kelas pastinya tidak dibenarkan untuk ditimpa.

19 [Disyorkan] Gunakan kaedah klon Objek dengan berhati-hati untuk menyalin objek.

Nota: Kaedah klon objek ialah salinan cetek secara lalai Jika anda ingin melaksanakan salinan dalam, anda perlu mengatasi kaedah klon untuk menyalin objek atribut .

20 [Disyorkan] Kawalan akses yang ketat kepada ahli kelas dan kaedah:

1) Jika objek luaran tidak dibenarkan dibuat secara langsung melalui baru, maka pembina mestilah peribadi.

2) Kelas alat tidak dibenarkan mempunyai pembina awam atau lalai.

3) Kelas pembolehubah ahli bukan statik dan dikongsi dengan subkelas mesti dilindungi.

4) Pembolehubah ahli bukan statik kelas hanya digunakan dalam kelas ini dan mestilah peribadi.

5) Pembolehubah ahli statik kelas mestilah tertutup jika ia hanya digunakan dalam kelas ini.

6) Jika ia adalah pembolehubah ahli statik, anda mesti mempertimbangkan sama ada ia muktamad.

7) Kaedah ahli kelas hanya boleh dipanggil dalam kelas dan mestilah peribadi.

8) Kaedah ahli kelas hanya terbuka kepada kelas yang diwarisi, jadi ia terhad untuk dilindungi.

Nota: Kawal skop akses mana-mana kelas, kaedah, parameter atau pembolehubah dengan ketat. Skop akses yang terlalu luas tidak sesuai untuk penyahgandingan modul. Fikiran: Jika ia kaedah persendirian, padamkannya jika anda mahu, tetapi jika ia kaedah Perkhidmatan awam, atau pembolehubah ahli awam, padamkannya dan tapak tangan anda akan berpeluh sedikit? Pembolehubah adalah seperti kanak-kanak anda sendiri.