Rumah > Java > javaTutorial > Adakah Getters dan Setter Sentiasa Reka Bentuk Buruk?

Adakah Getters dan Setter Sentiasa Reka Bentuk Buruk?

DDD
Lepaskan: 2024-12-28 22:38:13
asal
374 orang telah melayarinya

Are Getters and Setters Always Bad Design?

Adakah Reka Bentuk Getters dan Setters Kurang: Menilai Nasihat Bercanggah

Ramai pembangun bergelut dengan perdebatan mengenai getter dan setter dalam reka bentuk berorientasikan objek. Soalan ini menangani dilema ini, meneroka kontroversi yang menyelubungi kaedah akses ini.

Hujah Menentang Pengambil dan Penetap

Sesetengah berpendapat bahawa pengambil dan penetap adalah tidak perlu malah berbahaya. Mereka berpendapat bahawa mendedahkan pembolehubah persendirian secara langsung melalui kaedah getter melanggar enkapsulasi dan boleh membawa kepada akibat yang tidak diingini. Selain itu, penggunaan getter dan setter yang berlebihan mengacaukan kod dan menyukarkan penyelenggaraan.

Argument for Getters and Setters

Penyokong getter dan setter mengekalkan bahawa mereka adalah penting untuk mencapai pengaturcaraan berorientasikan objek yang betul. Mereka berpendapat bahawa getter membenarkan pengambilan semula data peribadi dengan selamat, manakala setter membolehkan manipulasi terkawal bagi data tersebut. Ini menggalakkan integriti data dan memastikan keadaan dalaman objek kekal konsisten.

Melangkaui Perbahasan Pengambil/Penetap

Walaupun perbahasan pengambil/penetap mempunyai merit, ia adalah penting untuk menyedari bahawa isu teras terletak pada reka bentuk objek kami. Pengambil dan penetap yang terlalu bertele-tele selalunya berpunca daripada kegagalan untuk mentakrifkan kaedah bermakna yang menggambarkan dengan tepat tingkah laku kelas yang diingini.

Sebagai contoh, jika kita mempunyai permainan dengan pembilang skor yang hanya boleh meningkat, ia tidak masuk akal untuk menyediakan kaedah setScore(). Sebaliknya, pendekatan yang lebih sesuai ialah mencipta kaedah addScore() yang merangkumi tingkah laku khusus untuk meningkatkan skor. Pendekatan ini bukan sahaja menghapuskan keperluan untuk penetap, tetapi juga meningkatkan kejelasan kod dan mengurangkan risiko kesan sampingan yang tidak diingini.

Akhirnya, keputusan sama ada untuk menggunakan getter dan setter atau tidak harus dibuat pada kes -mengikut kes, mengambil kira kerumitan kelas, potensi penyalahgunaan dan kejelasan yang diberikannya. Dengan menimbang faktor ini dengan teliti, pembangun boleh mereka bentuk kelas yang boleh diselenggara dan cekap.

Atas ialah kandungan terperinci Adakah Getters dan Setter Sentiasa Reka Bentuk Buruk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan