Show the basics of inheritance and polymorphism in object-oriented programming. Introductory. Part of Industrial Logic's Object-Oriented Design Workshop. http://industriallogic.com/shop
11. Make them the same
public class SmsMessager
{
private List<string> _recipients;
public void Recipients(List<string> recipients)
{
_recipients = recipients;
}
public void SendMessage(string subject, string text)
{
SmsConnector.SendMessage(subject, text).To(_recipients.ToArray()).Execute();
}
}
public class EmailMessager
{
private List<string> _recipients;
public void Recipients(List<string> recipients)
{
_recipients = recipients;
}
public void SendMessage(string subject, string text)
{
EmailGateway.Recipients(_recipients).Subject(subject).Body(text).Send();
}
}
21. Before
public class MessagerCaller
{
public static void BorrowFromPhoneFriends(SmsMessager sms, string[] friends)
{
sms.Numbers(friends);
sms.SendMessage("Hello!", "Can I borrow $100.00?");
}
public static void BorrowFromEmailFriends(EmailMessager email, List<string> friends)
{
email.Recipients(friends);
email.SendEmail("Hello!", "Can I borrow $100.00?");
}
}
After
public class MessagerCaller
{
public static void Borrow(Messager messager, List<string> friends)
{
messager.Recipients(friends);
messager.SendMessage("Hello!", "Can I borrow $100.00?");
}
}
27. Summary
• Use polymorphism to craft interchangeable
parts by:
• Implementing interfaces
• Putting shared code in a base class
• Avoid speculative generality and combinatorial
explosions