Skip to content

Instantly share code, notes, and snippets.

@nyergler
Created July 10, 2014 17:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nyergler/2258683b7a16768a6fc7 to your computer and use it in GitHub Desktop.
Save nyergler/2258683b7a16768a6fc7 to your computer and use it in GitHub Desktop.
class Twilio(object):
def send(self, message, to):
print "SMS '" + message + "' sent to " + to
class Email(object):
def send(self, message, to):
print "Email '" + message + "' sent to " + to
class SmsDevice(object):
def __init__(self, phone_number):
self.phone_number = phone_number
class EmailDevice(object):
def __init__(self, email_address):
self.email_address = email_address
class Message(object):
def __init__(self, body):
self.body = body
def send_to(self, recipients):
for recipient in recipients:
if isinstance(recipient, SmsDevice):
self.send_sms(self.body, recipient.phone_number)
elif isinstance(recipient, EmailDevice):
self.send_email(self.body, recipient.email_address)
def send_sms(self, message, phone_number):
Twilio().send(message, phone_number)
def send_email(self, message, email):
Email().send(message, email)
if __name__ == '__main__':
message = Message("Hello, world!")
recipients = [
SmsDevice('+1-555-555-1212'),
EmailDevice('user@example.com'),
]
message.send_to(recipients)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment