static void Main(string[] args) { OrderProcessor orderProcessor = new OrderProcessor(); ShippingAgent shippingClient = new ShippingAgent("Shipping"); shippingClient.Link = "Link to Shipping Service"; RoyaltyDepartmentClient royaltyClient = new RoyaltyDepartmentClient("Royalty Department"); royaltyClient.Link = "Link to Royalty Department Service"; ProductFactory productFactory = new PhysicalProductFactory(); Product book = productFactory.Create("Fiction Novel"); book.Outputs = new List <Output>(); book.Outputs.Add(new PackingSlip("Original Packing Slip", book, shippingClient)); book.Outputs.Add(new PackingSlip("Duplicate Packing Slip", book, royaltyClient)); orderProcessor.ProcessOrder(book); }
public override Product Create(string description) { Target shippingClient = new ShippingAgent("Shipping"); shippingClient.Link = "URL to Shipping Service"; Target royaltyClient = new RoyaltyDepartmentClient("Royalty Department"); royaltyClient.Link = "URL to Royalty Department Service"; Target paymentClient = new PaymentServiceAgent("Payment"); paymentClient.Link = "URL to Payment Services"; Product book = new Book(description); book.Outputs = new List <Output>(); book.Outputs.Add(new PackingSlip("Original Packing Slip", book, shippingClient)); book.Outputs.Add(new PackingSlip("Duplicate Packing Slip", book, royaltyClient)); book.Outputs.Add(new PackingSlip("Commission Payment", book, paymentClient)); return(book); }