mobile theme mode icon
theme mode light icon theme mode dark icon
Random Question Acak
speech play
speech pause
speech stop

Memahami Dekorator dengan Python

Dekorator adalah pola desain yang memungkinkan Anda memodifikasi atau memperluas perilaku suatu objek tanpa mengubah implementasi asli objek tersebut. Dengan kata lain, dekorator memungkinkan Anda menambahkan fungsionalitas baru ke objek yang sudah ada tanpa mengubah kode intinya.

Dekorator biasanya merupakan fungsi yang menggunakan objek sebagai argumen dan mengembalikan objek baru yang "membungkus" objek asli. Objek baru memiliki metode dan atribut yang sama dengan objek aslinya, namun ia juga memiliki beberapa fungsi atau perilaku tambahan yang disediakan oleh dekorator.

Sebagai contoh, katakanlah Anda memiliki kelas bernama `Mobil` yang memiliki metode bernama `drive ()` yang membuat mobil bergerak. Anda dapat membuat dekorator bernama `SpeedLimitDecorator` yang memodifikasi metode `drive()` untuk membatasi kecepatan mobil. `SpeedLimitDecorator` akan mengambil objek `Car` asli sebagai argumen dan mengembalikan objek `Car` baru yang memiliki metode dan atribut yang sama dengan `Car` asli, namun dengan fungsionalitas tambahan untuk membatasi kecepatan.

Berikut adalah contoh bagaimana Anda dapat menggunakan dekorator dengan Python:
```
class Car:
def drive(self):
print("Mobil sedang mengemudi")

class SpeedLimitDecorator:
def __init__(self, car):
self. car = car

def drive(self):
self.car.drive()
print("Mobil sekarang dibatasi hingga 50 mph")

car = Car()
speed_limited_car = SpeedLimitDecorator(car)
speed_limited_car.drive() # prints "Mobil sedang mengemudi" dan "Mobil sekarang dibatasi hingga 50 mph"
```
Dalam contoh ini, kelas `SpeedLimitDecorator` mengambil objek `Mobil` sebagai argumen dalam konstruktornya, dan kemudian memodifikasi `drive( )` metode objek `Mobil` asli untuk membatasi kecepatannya. Kelas `SpeedLimitDecorator` juga memiliki metode `drive()` sendiri yang memanggil metode `drive()` asli dari objek yang dibungkus, namun dengan batasan tambahan sebesar 50 mph.

Decorators adalah alat yang ampuh untuk memodifikasi atau memperluas objek yang ada tanpa mengubah implementasi aslinya. Mereka dapat digunakan untuk menambah fungsionalitas baru, mengubah perilaku, atau bahkan mengganti bagian implementasi objek tanpa mempengaruhi kode lainnya.

Knowway.org menggunakan cookie untuk memberi Anda layanan yang lebih baik. Dengan menggunakan Knowway.org, Anda menyetujui penggunaan cookie kami. Untuk informasi mendetail, Anda dapat meninjau teks Kebijakan Cookie kami. close-policy