Mga Sistema ng Pagkontrol at Automisyon
Pagdisenyo ng Isang Madaling - makibagay na Sistema ng Pag - iingat na May Obserba sa Python
Table of Contents
Ang paglikha ng isang sistemang pang-edukasyon na naibabagay sa mga makabagong aplikasyong software. Ang dibuhong Observer, isang disenyong dibuho sa inhinyeriyang software, ay nagbibigay ng isang eleganteng solusyon sa pagpapatupad ng gayong mga sistema sa Python.Ito ay nagpapahintulot sa mga bagay na mag-skripto at makatanggap ng mga update mula sa ibang mga bagay sa dinamikong paraan, na nagtataguyod ng maluwag na pagkakalas at pag-aasal.
Pag - unawa sa Halimbawa ng mga Tagamasid
Binibigyang kahulugan ng dibuhong Observer ang isang one-to-manyang dependensiya sa pagitan ng mga bagay. Kapag ang estado ng isang bagay (ang paksa) na mga pagbabago, lahat ng mga umaasa (mga tagamasid) nito ay awtomatikong naipababatid. Ang padrong ito ay partikular na kapaki-pakinabang sa pagpapatupad ng mga sistemang humahawak ng pangyayari, katulad ng mga notasyon, kung saan ang maraming mga bahagi ay nangangailangang tumugon sa mga pagbabago.
Pag - aalis sa Parisan sa Python
Sa Python, ang dibuhong Observer ay maaaring ipatupad gamit ang mga klase at pamamaraan.Ang paksa ay nagpapanatili ng isang talaan ng mga tagapagmasid at nagbibigay ng mga paraan upang idikit, i-crew, at i-folify ang mga ito. ang mga tagapagmasid ay nagpapatupad ng isang karaniwang interface upang makatanggap ng mga update.
Paglikha ng Klase ng mga Paksa
Ang uring subject ay namamahala ng isang talaan ng mga tagapagmasid at nagbibigay ng mga paraan upang baguhin at i-foctor sila.
class Subject:
def __init__(self):
self.observers = []
def attach(self, observer):
self.observers.append(observer)
def detach(self, observer):
self.observers.remove(observer)
def notify(self, message):
for observer in self.observers:
observer.update(message)
Paglikha ng Interface ng mga Tagamasid
Kailangang ipatupad ng mga nagmamasid ang isang pamamaraang update upang pangasiwaan ang mga notasyon.
class Observer:
def update(self, message):
raise NotImplementedError("Subclass must implement update method")
Pag - iisip sa mga Concrete Observer
Binibigyang - kahulugan ng mga nagmamasid na konkreto ang espesipikong mga reaksiyon sa mga notasyon, gaya ng pag - iimprenta ng mensahe o pag - aayos sa isang gumagamit ng Internet.
class EmailNotification(Observer):
def update(self, message):
print(f"Sending email notification: {message}")
class LogNotification(Observer):
def update(self, message):
print(f"Logging message: {message}")
Paggamit ng Sistema ng Pag - iingat ng Panahon
Upang magamit ang sistema, lumikha ng isang paksa, magkabit ng mga tagapagmasid, at magpadala ng mga notasyon. Ang setup na ito ay pumapayag sa pagdaragdag o pagtanggal ng mga tagamasid ng dinamikong ekwasyong.
# Create subject
notification_center = Subject()
# Create observers
email_alert = EmailNotification()
log_alert = LogNotification()
# Attach observers
notification_center.attach(email_alert)
notification_center.attach(log_alert)
# Send a notification
notification_center.notify("New message received!")
Tinitiyak ng padrong ito na ang iyong sistemang notipikasyon ay naibabagay at madaling mapalawak. Maaring magdagdag ng mga bagong uri ng notasyon nang hindi binabago ang umiiral na kodigo, na sumusunod sa bukas-malapit na prinsipyo ng disenyo ng software.