Saya memiliki tiga tampilan di program saya (aplikasi iOS). Hanya satu dari mereka yang aktif pada saat yang sama sehingga saya menonaktifkan visibilitas untuk dua dari mereka dan mengalihkan visibilitas saat pengguna menekan tombol. Tampilan diinisialisasi sebagai terlihat sehingga saya menonaktifkan visibilitas dalam kode sebelum tampilan utama ditampilkan.
dapat saya lakukan
[view1 setAlpha:0.0f];
[view2 setAlpha:0.0f];
untuk dua tampilan, tetapi sekarang yang ketiga (yang harus terlihat pada awal aplikasi) tidak ditangani. Saya menempatkan
[view3 setAlpha:1.0f];
setelah dua yang pertama, karena saya pikir tetap jelas bahwa sebenarnya ada tiga pandangan, bukan dua seperti yang orang pikirkan ketika melihat kode. Bagaimana programmer lain melakukan ini? Apakah ini murni preferensi atau ada beberapa konvensi?
Jika panggilan itu sangat berat, jelas lebih baik untuk tidak meneleponnya saat itu tidak perlu, tetapi saya bertanya-tanya tentang hal-hal kecil seperti contoh saya.
sumber
setVisibility
tidak melakukan apa pun jika visibilitas sudah menjadi yang diminta, yang menurunkan tanggung jawab.Gagasan alternatif: jika tujuan Anda adalah mencegah bug terjadi karena orang lupa ada tiga pandangan dan melakukan sesuatu dengan hanya dua di antaranya yang benar-benar harus mereka lakukan dengan semua itu, maka buatlah fungsi yang membuat mustahil untuk dilupakan:
Sekarang Anda memiliki sesuatu yang jauh lebih kuat - waktu kompilasi menjamin Anda tidak lupa . Jika Anda lupa parameter, kompiler akan berteriak kepada Anda. Ini jauh lebih berguna daripada komentar atau kode yang tidak perlu, karena membuat protokol bernama ketat yang memberlakukan properti yang Anda pedulikan.
Untuk kasus di mana
view3
visibilitasnya tidak perlu diubah, Anda dapat menambahkan beberapa perilaku di mana melewati nilai khusus seperti-1.0
ataunil
atau sesuatu di sepanjang garis itu berarti "tidak mengubah visibilitas tampilan sama sekali". Ini mengatasi masalah pengaturan visibilitas yang tidak perlu.sumber
Saya akan percaya bahwa menambahkan komentar yang menjelaskan bahwa panggilan itu tidak diperlukan (dan mengapa) adalah yang terbaik.
(mungkin, fakta bahwa panggilan tidak diperlukan, atau bahwa Anda memerlukan komentar tentang itu, mungkin merupakan bau kode)
sumber
Dalam kasus khusus ini, @Mattieu M. memiliki solusi yang tepat.
Dalam kasus yang lebih umum, di mana tidak ada sama mengubah, Anda harus bertanya pada diri sendiri: Apakah ada setiap kesempatan programmer kekuatan kekacauan masa ini sampai?
Jawabannya biasanya ya. Yang berarti, ya, Anda harus menambahkan panggilan. Mungkin beberapa versi kerangka masa depan dimulai dengan semua tampilan MATI bukan AKTIF.
sumber