Pilih Atribut Instance untuk Instance Singleton
Dalam senario di mana hanya satu contoh kelas diperlukan, pilihan antara menggunakan atribut instance dan atribut kelas memerlukan pertimbangan. Walaupun kedua-dua pendekatan menyimpan atribut secara berkesan, ia mempunyai perbezaan yang ketara dari segi kecekapan dan skop.
Atribut Kelas
Atribut kelas ditakrifkan di luar kaedah contoh dan dikongsi antara semua contoh kelas. Menggunakan atribut kelas untuk contoh tunggal boleh membawa kepada lebihan, kerana data yang sama akan hadir dalam setiap kejadian. Selain itu, mengubah suai atribut kelas akan mempengaruhi semua kejadian.
Atribut Instance
Atribut Instance, sebaliknya, ditakrifkan dalam pembina (__init__) dan unik untuk setiap contoh. Untuk singleton, pendekatan ini memastikan bahawa atribut dimulakan sekali sahaja dan disimpan dalam contoh tunggal. Ini menghasilkan kelebihan prestasi yang kecil berbanding atribut kelas disebabkan kedalaman carian yang dikurangkan.
Pengesyoran
Dalam situasi di mana kelas hanya akan mempunyai satu contoh, ia adalah disyorkan untuk menggunakan atribut contoh. Ini memberikan kecekapan dalam mengakses data dan menghapuskan risiko pengubahsuaian yang tidak diingini yang menjejaskan berbilang kejadian.
Contoh
Pertimbangkan kod Python berikut yang mentakrifkan kelas dengan atribut yang akan hanya digunakan oleh satu contoh:
class MyController: def __init__(self): self.path = "something/" self.children = [AController, BController] def action(self, request): pass
Dalam contoh ini, menggunakan atribut contoh memastikan bahawa terdapat hanya akan menjadi satu set atribut untuk contoh tunggal kelas MyController, memberikan kecekapan optimum dan pengasingan data.
Atas ialah kandungan terperinci Patutkah Saya Menggunakan Atribut Instance atau Atribut Kelas untuk Instance Singleton dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!