Skip to content

Commit de828ba

Browse files
authored
Merge pull request #5146 from cyberdidac/main
#30 - Python
2 parents c813494 + 6b5cbd1 commit de828ba

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
from abc import ABC, abstractmethod
2+
3+
4+
class MessageService(ABC):
5+
@abstractmethod
6+
def send_message(self, message: str):
7+
pass
8+
9+
10+
class EmailService(MessageService):
11+
def send_message(self, message: str):
12+
print(f"Enviando email con mesnaje:\n"
13+
f"> {message}")
14+
15+
16+
class SMSService(MessageService):
17+
def send_message(self, message: str):
18+
print(f"Enviando SMS con mensaje:\n"
19+
f"> {message}")
20+
21+
22+
class PUSHService(MessageService):
23+
def send_message(self, message: str):
24+
print("Enviando PUSH con mensaje:\n"
25+
f"> {message}")
26+
27+
28+
class Notification:
29+
message_service: MessageService
30+
31+
def __init__(self, message_service: MessageService):
32+
self.message_service = message_service
33+
34+
def send(self, message: str):
35+
self.message_service.send_message(message)
36+
37+
38+
def main():
39+
email_service = EmailService()
40+
sms_service = SMSService()
41+
push_service = PUSHService()
42+
43+
notification_email = Notification(email_service)
44+
notification_sms = Notification(sms_service)
45+
notification_push = Notification(push_service)
46+
47+
notification_email.send("Hola desde el EmailService!")
48+
notification_sms.send("Hola desde el SMSService!")
49+
notification_push.send("Hola desde el PUSHService!")
50+
51+
52+
if __name__ == '__main__':
53+
main()

0 commit comments

Comments
 (0)