public House(int numberHouse, int squareMeters, int numberOfResidents, DecoratorBuilder builder = null) { this.Number = numberHouse; this.Area = squareMeters; this.Residents = numberOfResidents; this.Builder = builder ?? new BasicBuilder(); }
public Square(string squareName, double lengthMeters, int trees, int streetlights, DecoratorBuilder builder = null) { this.Name = squareName; this.Area = lengthMeters; this.Trees = trees; this.Streetlights = streetlights; this.Builder = builder ?? new BasicBuilder(); }
public static void Main(string[] args) { IChat chat = new Chat(); chat = new DecoratorBuilder(chat) .WithTextEncrypt() .WithUserHide() .Build(); chat.SendMessage(new Message("Alex", "Ivan", "Hi")); chat.SendMessage(new Message("Alex", "Ivan", "How are you?")); chat.SendMessage(new Message("Ivan", "Alex", "Fine")); Console.WriteLine(); var messages = chat.GetMessages("Ivan"); Console.WriteLine(string.Join("\n", messages.Select(m => m.Text))); Console.ReadKey(); }
static void Main(string[] args) { IChatClient chatclient = new ChatClient(); //цепочка дерорторов chatclient = new DecoratorBuilder(chatclient) .WithUserHiding() .WithTextEncryption() .Build(); var message = new Message(author: "George", addressee: "Alexander", text: "Test. Hello there! How are you?"); chatclient.SendMessage(message); var result = chatclient.ReceiveMessage(message); Console.ReadLine(); }
public static void DecoratorExample() { //Пустой калькулятор, без дополнительной логики ICalculator calculator = new Calcuator(); //Калькулятор задекорированный логером и таймером //calculator = new TimerDecorator(calculator); //calculator = new LoggerDecorator(calculator); //Пример билдера раширения для удобного составления цепочки дерорторов calculator = new DecoratorBuilder(calculator) .WithTimer() .WithLogger() .Build(); calculator.SetFunction((x) => x * 2); var result = calculator.Calculate(2); Console.WriteLine(result); }
static void Main(string[] args) { var chatClient = new DecoratorBuilder(new ChatClient()) .WithEncodeText() .WithEncodeUser() .Build(); var message = new Message("I", "She", "Hello"); chatClient.SendMessage(message); var messages = chatClient.GetMessage(); foreach (Message testMessage in messages) { Console.WriteLine("----Message----"); Console.WriteLine($"Author: {testMessage.Author}"); // Author: # Console.WriteLine($"Recipient: {testMessage.Recipient}"); // Recipient: ### Console.WriteLine($"Text: {testMessage.Text}"); // Text: (encode)Hello(encode) } }
public static ISector[][] BuildDecorator(double squareMeters, DecoratorBuilder builder) { var area = Math.Sqrt(squareMeters); var n = (int)Math.Round(area); var fields = new ISector[n][]; for (int i = 0; i < n; i++) { fields[i] = new ISector[n]; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { fields[i][j] = builder.BuildDecorator(); } } return(fields); }