Saya saat ini 4 bulan magang, dan ketika meninjau kode saya, bos saya tidak suka bahwa saya telah menyimpan objek khusus lokal ke sejumlah metode di beberapa kelas terpisah dalam satu majelis. Dia tidak suka bahwa saya dibuat objek baru setiap kali, dan sebaliknya mengatakan kepada saya untuk membuat objek tunggal yang dapat diakses dari mana saja. Karena itu saya harus membuatnya sebagai objek statis dalam kelas statis, dan cukup referensi dari sini saya ingin menggunakannya!
Bagaimana Anda menangani ini, karena saya hanya memprogram secara profesional selama 4 bulan!
teamwork
coding-standards
singleton
Darren Young
sumber
sumber
Jawaban:
Jika satu objek cukup, membuat objek setiap kali adalah sia-sia, dan di sini bos Anda mungkin benar.
Masalahnya adalah akses yang tepat ke objek itu. Metode seperti pabrik dengan visibilitas yang tepat yang selalu mengembalikan objek statis itu adalah solusi pertama yang muncul dalam pikiran. Yang lain tentu ada.
sumber
Saya tidak bisa mengomentari kasus tertentu, tapi menggunakan variabel global adalah kadang-kadang solusi yang baik. Kelas Sistem Java penuh dengan variabel global yang statis.
Tetapi secara umum, jika Anda berpikir Anda benar dan bos Anda salah, maka mengapa Anda tidak meminta atasan Anda untuk menjelaskan mengapa menurutnya variabel global adalah solusi yang lebih baik? Jelas "Saya tidak suka itu" sama kaburnya seperti "variabel global itu jahat". Anda harus meminta lebih dari atasan Anda!
Jika dia tidak bisa memberikan alasan untuk sikapnya, dan Anda bisa memberikan alasan untuk sikap Anda, atau sebaliknya, maka itu adalah kesempatan belajar yang baik. Jika Anda berdua dapat membenarkan sikap Anda, maka itu mungkin masalah selera - atau masalah pengalaman: bos Anda harus pemrograman secara profesional lebih dari 4 bulan, saya pikir?
sumber
java.lang.System
berisi tepat tiga variabel global, dan untuk masing-masingnya ada metode untuk mengaturnya dengan benar. TetapiSystem
penuh dengan metode statis yang mengembalikan objek global, dan tidak ada yang salah dengan ini, tidak dapat membantah.System
penyederhanaan, katakanlah, 99,9% dari kasus penggunaan dengan biaya menyebabkan masalah di 0,1% sisanya. Tidak ada jawaban "benar" untuk apakah 0,1% layak kompleksitas tambahan.Sebagai seseorang di posisi Anda, yang paling bisa Anda lakukan adalah belajar. Jika objek pada dasarnya adalah konstanta (artinya tidak dapat berubah dan tidak mempertahankan status), maka atasan Anda mungkin benar. Tidak ada salahnya memiliki objek konstan statis. Lagi pula, ada berapa definisi PI?
Sebagian orang mempertahankan pola pikir "tidak ada objek global" hingga menjadi titik tolak agama. Itu karena salah satu dari dua alasan: mereka agak sulit melacak bug atau kerapuhan sistem karena terlalu sering menggunakan variabel global / objek, atau mereka telah mendengar bahwa itu buruk dan mereka tidak dapat berpikir sendiri. Saya pribadi termasuk dalam kelompok orang yang telah terpukul oleh kerapuhan dan sulit untuk melacak bug - tapi saya juga belajar keseimbangan di sini.
Jika saya berada di posisi Anda, saya akan melanjutkan dan melakukan apa yang dikatakan bos - itu adalah pantatnya setelah semua. Lalu saya akan melihat dan melihat efek dari pilihan itu dari waktu ke waktu. Ini adalah alat belajar yang efektif.
sumber
Bergantung pada situasi spesifik, variabel global mungkin menjadi solusi terbaik. Dalam pemrograman tertanam, global tidak menempati ruang stack dan karena itu pilihan yang baik.
Global atau tidak, saya telah menemukan praksis yang bagus untuk menempatkan awalan pada global. Ini akan membuat pemrogram lain googling kode Anda menyadari dampaknya jika mengacaukannya.
sumber
Mungkin yang diinginkan bos Anda adalah Anda menggunakan Pola Singleton. Ini adalah praktik yang sangat bagus ketika Anda perlu mengakses objek tertentu dari banyak kejadian.
Berikut ini tautan ke penjelasan wikipedias
sumber
good practice
akan menggunakan en.wikipedia.org/wiki/Dependency_injection