diff --git a/Design Pattern Examples/Adapter/Program.cs b/Design Pattern Examples/Adapter/Program.cs new file mode 100644 index 0000000..852d6d2 --- /dev/null +++ b/Design Pattern Examples/Adapter/Program.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace adapterexample +{ + public interface ITarget + { + List GetEmployeeList(); + } + public class ThirdPartyBillingSystem + { + private ITarget employeesource; + public ThirdPartyBillingSystem(ITarget src) + { + employeesource = src; + } + public void ShowEmployeeList() + { + List employee = employeesource.GetEmployeeList(); + + foreach (string emp in employee) + { + Console.WriteLine(emp); + } + } + } + public class HRSystem + { + public string[][] GetEmployees() + { + string[][] employees = new string[4][]; + employees[0] = new string[] { "100", "Deepak", "Team Leader" }; + employees[1] = new string[] { "101", "Rohit", "Developer" }; + employees[2] = new string[] { "102", "Nathan", "Developer" }; + employees[3] = new string[] { "103", "Bob", "Tester" }; + return employees; + } + } + + public class EmployeeAdapter : HRSystem, ITarget + { + + public List GetEmployeeList() + { + List employeeList = new List(); + string[][] employees = GetEmployees(); + foreach (string[] employee in employees) + { + employeeList.Add(String.Format("{0},{1},{2}", employee[0], employee[1], employee[2])); + } + return employeeList; + } + } + + class Program + { + static void Main(string[] args) + { + ITarget target = new EmployeeAdapter(); + ThirdPartyBillingSystem client = new ThirdPartyBillingSystem(target); + client.ShowEmployeeList(); + + } + } +} diff --git a/Design Pattern Examples/Bridge/Program.cs b/Design Pattern Examples/Bridge/Program.cs new file mode 100644 index 0000000..ef60e4c --- /dev/null +++ b/Design Pattern Examples/Bridge/Program.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace bridgeexample +{ + class Program + { + public interface IMessageSender + { + void SendMessage(string subject, string body); + } + + public abstract class Message + { + public IMessageSender MessageSender { get; set; } + public string Subject { get; set; } + public string Body { get; set; } + public abstract void Send(); + } + + public class SystemMessage : Message + { + public override void Send() + { + MessageSender.SendMessage(Subject, Body); + } + } + + public class UserMessage : Message + { + public string UserComments { get; set; } + public override void Send() + { + string fullbody = string.Format("{0}\nUser Comments:{1}", Body, UserComments); + MessageSender.SendMessage(Subject, fullbody); + } + } + + public class EmailSender : IMessageSender + { + public void SendMessage(string subject, string body) + { + Console.WriteLine("Email\n{0}\n{1}\n", subject, body); + } + } + + public class MSMQSender : IMessageSender + { + public void SendMessage(string subject, string body) + { + Console.WriteLine("MSMQ\n{0}\n{1}\n", subject, body); + } + } + + public class WebServiceSender : IMessageSender + { + + public void SendMessage(string subject, string body) + { + Console.WriteLine("Web Service\n{0}\n{1}\n", subject, body); + } + } + + static void Main(string[] args) + { + IMessageSender email = new EmailSender(); + IMessageSender queue = new MSMQSender(); + IMessageSender web = new WebServiceSender(); + + Message message = new SystemMessage(); + message.Subject = "Test Message"; + message.Body = "This is a test message"; + message.MessageSender = email; + message.Send(); + + message.MessageSender = queue; + message.Send(); + + message.MessageSender = web; + message.Send(); + + UserMessage usermsg = new UserMessage(); + usermsg.Subject = "Test user message"; + usermsg.Body = "This is a test user message"; + usermsg.UserComments = "C# is awesome!"; + + usermsg.MessageSender = email; + usermsg.Send(); + } + } +}