static void Main(string[] args) { var auto1 = new AutoConrete1(1, 15, 8); var auto2 = ObjectCopier.Clone <Auto>(auto1);//var auto2 = auto1.Clone(); auto1.MaxSpeed = 100; Console.WriteLine("-- Игрушки --"); Console.WriteLine("-- auto1 --"); foreach (FieldInfo field in typeof(Auto).GetFields(BindingFlags.NonPublic | BindingFlags.Instance)) { Console.WriteLine(field.Name + " " + field.GetValue(auto1)); } Console.WriteLine("-- auto2 --"); foreach (FieldInfo field in typeof(Auto).GetFields(BindingFlags.NonPublic | BindingFlags.Instance)) { Console.WriteLine(field.Name + " " + field.GetValue(auto2)); } Console.WriteLine("-- Figures --"); IFigure figure = new Rectangle(20, 20, 30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(50, 50, 30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); Console.Read(); }
static void Main(string[] args) { IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); }
//prototype private void Button_Click_3(object sender, RoutedEventArgs e) { IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); }
public void Run() { IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); }
public void Run() { IFigure figure = new Rectangle(22, 44); IFigure clonedFif = figure.Clone(); figure.GetInfo(); clonedFif.GetInfo(); figure = new Circle(4122); clonedFif = figure.Clone(); figure.GetInfo(); clonedFif.GetInfo(); }
static void Main(string[] args) { IFigure figure = new Rectangle(25, 35); IFigure cloneFigure = figure.Clone(); figure.GetInfo(); cloneFigure.GetInfo(); figure = new Circle(45); cloneFigure = figure.Clone(); figure.GetInfo(); cloneFigure.GetInfo(); Console.ReadLine(); }
public static void Run() { Console.WriteLine("\r\n\tPrototype\r\n"); IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); }
static void Main(string[] args) { IFigure figure = new Rectangle(10, 20); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(15); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Triangle(10, 20, 25); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); }
static void Main(string[] args) { IFigure figure = new Rectangle(12, 12); IFigure figureClone = figure.Clone(); figure.GetInfo(); figureClone.GetInfo(); figure = new Circle(30); figureClone = figure.Clone(); figure.GetInfo(); figureClone.GetInfo(); Console.ReadLine(); }
static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; IFigure figure = new Rectangle(10, 20); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(15); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); Console.Read(); }
static void Main(string[] args) { Factory fac = new GoodHumanFactory("Ilya"); Human human = fac.Create(); fac = new BadHumanFactory("Naibic"); Human human2 = fac.Create(); President president = new President(); president.GetInfo(); Builder builder = new ConcreteBuilder(); Director director = new Director(builder); director.Construct(); Product product = builder.GetResult(); IFigure hum = new Humans("Dowr"); IFigure clonedFigure = hum.Clone(); hum.GetInfo(); clonedFigure.GetInfo(); Console.ReadLine(); }
static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Green; Console.Title = "Prototype"; IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); Console.ReadKey(); }
private void PrototypeStart(object sender, RoutedEventArgs e) { IFigure figure = new Prototype.Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); MessageBox.Show(figure.GetInfo()); MessageBox.Show(clonedFigure.GetInfo()); figure = new Circle(30); clonedFigure = figure.Clone(); MessageBox.Show(figure.GetInfo()); MessageBox.Show(clonedFigure.GetInfo()); figure = new Circle(15); MessageBox.Show(figure.GetInfo()); Circle deepClonedFigure = figure.DeepCopy() as Circle; MessageBox.Show(deepClonedFigure.GetInfo()); }
private void Button_Click(object sender, RoutedEventArgs e) { IFigure figure = new prototype.Rectangle(30, 40); count++; IFigure clonedFigure = figure.Clone(); count++; figure.GetInfo(list_txb); clonedFigure.GetInfo(list_txb); figure = new prototype.Circle(30); count++; clonedFigure = figure.Clone(); count++; figure.GetInfo(list_txb); clonedFigure.GetInfo(list_txb); Console_Txb.Text = count.ToString(); }
public void OutPatternInfo() { Console.WriteLine( "Когда нужно использовать паттерн прототип:\n" + "Когда конкретный тип создаваемого объекта должен определяться динамически во время выполнения" + "Когда нежелательно создание отдельной иерархии классов фабрик для создания объектов - продуктов из параллельной\n" + "иерархии классов(как это делается, например, при использовании паттерна Абстрактная фабрика)" + "Когда клонирование объекта является более предпочтительным вариантом нежели его создание и инициализация\n" + "с помощью конструктора. Особенно когда известно, что объект может принимать небольшое ограниченное число возможных состояний." ); IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); }
private void ButtonClickClone(object sender, RoutedEventArgs e) { IFigure figure = new Rectangles(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); IFigure figures = new Circles(30); IFigure clonedFigures = figures.Clone(); tb.Text = System.String.Format(" {0} \n {1} \n {2} \n {3}", figures.GetInfo(), clonedFigures.GetInfo(), figure.GetInfo(), clonedFigure.GetInfo()); }
static void Main(string[] args) { IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); Circle figure1 = new Circle(5, 4, 2); Circle clonedFigure1 = figure1.Clone() as Circle; figure1.GetInfo(); clonedFigure1.GetInfo(); Console.ReadKey(); }
static void Main(string[] args) { IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); ((Rectangle)clonedFigure).Point.X = 1; ((Rectangle)clonedFigure).Point.Y = 1; figure.GetInfo(); clonedFigure.GetInfo(); Console.WriteLine(new string('-', 52)); figure = new Rectangle(30, 40); clonedFigure = ((Rectangle)figure).DeepCopy() as IFigure; ((Rectangle)clonedFigure).Point.X = 1; ((Rectangle)clonedFigure).Point.Y = 1; figure.GetInfo(); clonedFigure.GetInfo(); Console.Read(); }
static void Main() { Square s = new Square(4.5); Circle c = new Circle(3.1); Rectangle r = new Rectangle(4.7, 3.8); s.GetInfo(); c.GetInfo(); r.GetInfo(); IFigure s1 = s; s1.GetInfo(); IFigure c1 = c; c1.GetInfo(); }
private static void Main(string[] args) { // Factory Method // ------------------- Develop Console.WriteLine("------------------- Develop"); Developer dev1 = new DeveloperPanel("ООО ПанельСтрой"); House house1 = dev1.Create(); Developer dev2 = new DeveloperWood("ООО Опушка"); House house2 = dev2.Create(); Developer dev3 = new DeveloperBrick("ООО КирпичСтрой"); House house3 = dev3.Create(); // List var developArray = new List <Developer> { new DeveloperPanel("ООО ПанельСтрой"), new DeveloperWood("ООО Опушка"), new DeveloperBrick("ООО КирпичСтрой") }; foreach (var dev in developArray) { dev.Create(); } // ------------------- Money Console.WriteLine("------------------- Money"); // Устанавливаем кодировку чтобы корректно отобразился символ рубля. Console.OutputEncoding = Encoding.Unicode; // Создаем коллекцию устройств для печати денег. // Обратите внимание, что мы можем хранить их все в одной коллекции. var machines = new List <CashMachineBase> { new RubleCashMachine(), new DollarCashMachine(), new EuroCashMachine() }; // Создаем коллекцию для хранения денег. // Опять таки здесь могут храниться любые классы, унаследованные от MoneyBase. var money = new List <MoneyBase>(); // Генератор случайных числе. var rnd = new Random(); // По очереди запускаем устройства для печати денег. foreach (var machine in machines) { // Случайное количество листов для разнообразия. var pageCount = rnd.Next(1, 3); // Вызываем фабричный метод для создания валюты. var newMoney = machine.Create(pageCount); // Добавляем созданную валюту в общую коллекцию. money.AddRange(newMoney); } // Выводим данные о деньгах на экран. foreach (var note in money) { Console.WriteLine(note); } //Console.ReadLine(); // Template method // ------------------- Pie Console.WriteLine("------------------- Pie"); PieBase applePie = new ApplePie(); PieBase meatPie = new MeatPie(); // Готовим мясной пирог. Console.WriteLine(meatPie); meatPie.Cook(); // Console.ReadLine(); // Готовим яблочный пирог. Console.WriteLine(applePie); applePie.Cook(); // Console.ReadLine(); Console.WriteLine("------------------- School"); School school = new School(); University university = new University(); College college = new College(); school.Learn(); university.Learn(); college.Learn(); // Adapter // ------------------- Travel Console.WriteLine("------------------- Travel"); // Путешественник Driver driver = new Driver(); // Машина Auto auto = new Auto(); // Отправляемся в путешествие driver.Travel(auto); // Встретились пески, надо использовать верблюда Camel camel = new Camel(); // Используем адаптер ITransport camelToTransportAdapter = new CamelToTransportAdapter(camel); // Продолжаем путь по пескам пустыни driver.Travel(camelToTransportAdapter); // Iterator // ------------------- Iterator Console.WriteLine("------------------- Iterator"); Aggregate aggregate = new ConcreteAggregate(); Iterator iterator = aggregate.CreateIterator(); /* * object item = iterator.First(); * while(!iterator.IsDone()) * { * item = iterator.Next(); * } */ Console.WriteLine("------------------- Iterator Books"); var library = new Library(); var reader = new Reader(); reader.SeeBooks(library); Console.WriteLine("------------------- Iterator Words"); // Клиентский код может знать или не знать о Конкретном Итераторе // или классах Коллекций, в зависимости от уровня косвенности, // который вы хотите сохранить в своей программе. var collection = new BehavioralPatterns.Iterator.Words.WordsCollection(); collection.AddItem("First"); collection.AddItem("Second"); collection.AddItem("Third"); Console.WriteLine("Straight traversal:"); foreach (var element in collection) { Console.WriteLine(element); } Console.WriteLine("\nReverse traversal:"); collection.ReverseDirection(); foreach (var element in collection) { Console.WriteLine(element); } // State // ------------------- State Console.WriteLine("------------------- State"); var context = new Context(new StateA()); context.Request(); // Переход в состояние StateB context.Request(); // Переход в состояние StateA var water = new Water(new LiquidWaterState()); water.Heat(); water.Frost(); water.Frost(); // Prototype // ------------------- Prototype Console.WriteLine("------------------- Prototype"); Prototype prototype = new ConcretePrototype1(5); Prototype clone = prototype.Clone(); prototype = new ConcretePrototype2(7); clone = prototype.Clone(); // --- Circle IFigure rectangle = new Rectangle(100, 300); IFigure rectangleClone = rectangle.Clone(); IFigure rectangleMemberwiseClone = rectangle.CloneMemberwise(); rectangleMemberwiseClone.GetInfo(); rectangle.GetInfo(); rectangleClone.GetInfo(); IFigure circle = new Circle(152); IFigure circleClone = circle.Clone(); circle.GetInfo(); circleClone.GetInfo(); // Shallow Copy Console.WriteLine("--- Shallow Copy"); var figure = new Circle2(30, 50, 60); var cloneFigure = figure.CloneMemberwise() as Circle2; figure.Point.X = 100; figure.GetInfo(); cloneFigure.GetInfo(); // Deep Copy Console.WriteLine("--- Deep Copy"); var figure2 = new Circle2(30, 50, 60); var cloneFigure2 = figure2.DeepCopy() as Circle2; figure2.Point.X = 100; figure2.GetInfo(); cloneFigure2.GetInfo(); // Proxy // ------------------- Proxy Console.WriteLine("------------------- Proxy"); var client = new BehavioralPatterns.Proxy.RealProxy.Client(); Console.WriteLine("Client: Executing the client code with a real subject:"); var realSubject = new BehavioralPatterns.Proxy.RealProxy.RealSubject(); client.ClientCode(realSubject); Console.WriteLine(); Console.WriteLine("Client: Executing the same client code with a proxy:"); var proxy = new BehavioralPatterns.Proxy.RealProxy.Proxy(realSubject); client.ClientCode(proxy); }
static void Main(string[] args) { #region Creational #region FactoryMethod Console.WriteLine("FactoryMethod:"); DeveloperAbsract dev = new PanelDeveloper("ООО КирпичСтрой"); HouseAbsctract house2 = dev.Create(); dev = new WoodDeveloper("Частный застройщик"); HouseAbsctract house = dev.Create(); Console.WriteLine(""); #endregion #region Abstract Factory Console.WriteLine("Abstract Factory:"); Hero elf = new Hero(new ElfFactory()); elf.Hit(); elf.Run(); Hero voin = new Hero(new VoinFactory()); voin.Hit(); voin.Run(); Console.WriteLine(""); #endregion #region Prototype Console.WriteLine("Prototype:"); Console.WriteLine("1. Copy: "); IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30, 10, 20); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); Console.WriteLine("2. Copy 2: "); Circle clonedFigure2 = figure.Clone2() as Circle; clonedFigure2.Point.X = 50; clonedFigure2.Point.X = 60; figure.GetInfo(); clonedFigure2.GetInfo(); Console.WriteLine("3. DeepCopy: "); figure = new Circle(50, 100, 200); Circle clonedFigure3 = figure.DeepCopy() as Circle; clonedFigure2.Point.X = 10; clonedFigure2.Point.X = 10; figure.GetInfo(); clonedFigure2.GetInfo(); Console.WriteLine(""); #endregion #endregion Console.ReadLine(); }
public string Main(IFigure figure) { IFigure cloneObject = figure.Clone(); return(cloneObject.GetInfo()); }
static void Main(string[] args) { #region Creational //-Factory Method- Developer dev = new PanelDeveloper("ООО КирпичСтрой"); House house2 = dev.Create(); dev = new WoodDeveloper("Частный застройщик"); House house = dev.Create(); //-Abstract Factory- GofPatterns.Creational.Hero elf = new GofPatterns.Creational.Hero(new ElfFactory()); elf.Hit(); elf.Run(); GofPatterns.Creational.Hero voin = new GofPatterns.Creational.Hero(new VoinFactory()); voin.Hit(); voin.Run(); //-Singleton- Computer comp = new Computer(); comp.Launch("Windows 8.1"); Console.WriteLine(comp.OS.Name); // у нас не получится изменить ОС, так как объект уже создан comp.OS = OS.getInstance("Windows 10"); //-Prototype- IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); //-Builder- // содаем объект пекаря Baker baker = new Baker(); // создаем билдер для ржаного хлеба BreadBuilder builder = new RyeBreadBuilder(); // выпекаем Bread ryeBread = baker.Bake(builder); Console.WriteLine(ryeBread.ToString()); // оздаем билдер для пшеничного хлеба builder = new WheatBreadBuilder(); Bread wheatBread = baker.Bake(builder); Console.WriteLine(wheatBread.ToString()); #endregion #region Behavioral //-Strategy- Car auto = new Car(4, "Volvo", new PetrolMove()); auto.Move(); auto.Movable = new ElectricMove(); auto.Move(); //-Observer- Stock stock = new Stock(); Bank bank = new Bank("ЮнитБанк", stock); Broker broker = new Broker("Иван Иваныч", stock); // имитация торгов stock.Market(); // брокер прекращает наблюдать за торгами broker.StopTrade(); // имитация торгов stock.Market(); //-Strategy- Pult pult = new Pult(); TV tv = new TV(); pult.SetCommand(new TVOnCommand(tv)); pult.PressButton(); pult.PressUndo(); Microwave microwave = new Microwave(); // 5000 - время нагрева пищи pult.SetCommand(new MicrowaveCommand(microwave, 5000)); pult.PressButton(); //-Iterator- Library library = new Library(); Reader reader = new Reader(); reader.SeeBooks(library); //-State- Water water = new Water(new LiquidWaterState()); water.Heat(); water.Frost(); water.Frost(); //-ChainOfResponsibility- Handler h1 = new ConcreteHandler1(); Handler h2 = new ConcreteHandler2(); h1.Successor = h2; h1.HandleRequest(2); //-Interpreter- Context context = new Context(); // определяем набор переменных int x = 5; int y = 8; int z = 2; // добавляем переменные в контекст context.SetVariable("x", x); context.SetVariable("y", y); context.SetVariable("z", z); // создаем объект для вычисления выражения x + y - z IExpression expression = new SubtractExpression( new AddExpression( new NumberExpression("x"), new NumberExpression("y") ), new NumberExpression("z") ); int result = expression.Interpret(context); Console.WriteLine("результат: {0}", result); //-Mediator- ManagerMediator mediator = new ManagerMediator(); Colleague customer = new CustomerColleague(mediator); Colleague programmer = new ProgrammerColleague(mediator); Colleague tester = new TesterColleague(mediator); mediator.Customer = customer; mediator.Programmer = programmer; mediator.Tester = tester; customer.Send("Есть заказ, надо сделать программу"); programmer.Send("Программа готова, надо протестировать"); tester.Send("Программа протестирована и готова к продаже"); //-Memento- GofPatterns.Behavioral.Hero hero = new GofPatterns.Behavioral.Hero(); hero.Shoot(); // делаем выстрел, осталось 9 патронов GameHistory game = new GameHistory(); game.History.Push(hero.SaveState()); // сохраняем игру hero.Shoot(); //делаем выстрел, осталось 8 патронов hero.RestoreState(game.History.Pop()); hero.Shoot(); //делаем выстрел, осталось 8 патронов //-Visitor- var structure = new Bank1(); structure.Add(new Person { Name = "Иван Алексеев", Number = "82184931" }); structure.Add(new Company { Name = "Microsoft", RegNumber = "ewuir32141324", Number = "3424131445" }); structure.Accept(new HtmlVisitor()); structure.Accept(new XmlVisitor()); #endregion #region Structural //-Decorator- Pizza pizza1 = new ItalianPizza(); pizza1 = new TomatoPizza(pizza1); // итальянская пицца с томатами Console.WriteLine("Название: {0}", pizza1.Name); Console.WriteLine("Цена: {0}", pizza1.GetCost()); Pizza pizza2 = new ItalianPizza(); pizza2 = new CheesePizza(pizza2);// итальянская пиццы с сыром Console.WriteLine("Название: {0}", pizza2.Name); Console.WriteLine("Цена: {0}", pizza2.GetCost()); Pizza pizza3 = new BulgerianPizza(); pizza3 = new TomatoPizza(pizza3); pizza3 = new CheesePizza(pizza3);// болгарская пиццы с томатами и сыром Console.WriteLine("Название: {0}", pizza3.Name); Console.WriteLine("Цена: {0}", pizza3.GetCost()); //-Adapter- // путешественник Driver driver = new Driver(); // машина Auto auto1 = new Auto(); // отправляемся в путешествие driver.Travel(auto1); // встретились пески, надо использовать верблюда Camel camel = new Camel(); // используем адаптер ITransport camelTransport = new CamelToTransportAdapter(camel); // продолжаем путь по пескам пустыни driver.Travel(camelTransport); //-Facade- TextEditor textEditor = new TextEditor(); Compiller compiller = new Compiller(); CLR clr = new CLR(); VisualStudioFacade ide = new VisualStudioFacade(textEditor, compiller, clr); Programmer programmer1 = new Programmer(); programmer1.CreateApplication(ide); //-Composite- Component fileSystem = new Directory("Файловая система"); // определяем новый диск Component diskC = new Directory("Диск С"); // новые файлы Component pngFile = new File("12345.png"); Component docxFile = new File("Document.docx"); // добавляем файлы на диск С diskC.Add(pngFile); diskC.Add(docxFile); // добавляем диск С в файловую систему fileSystem.Add(diskC); // выводим все данные fileSystem.Print(); Console.WriteLine(); // удаляем с диска С файл diskC.Remove(pngFile); // создаем новую папку Component docsFolder = new Directory("Мои Документы"); // добавляем в нее файлы Component txtFile = new File("readme.txt"); Component csFile = new File("Program.cs"); docsFolder.Add(txtFile); docsFolder.Add(csFile); diskC.Add(docsFolder); fileSystem.Print(); //-Proxy- using (IBook book = new BookStoreProxy()) { // читаем первую страницу Page page1 = book.GetPage(1); Console.WriteLine(page1.Text); // читаем вторую страницу Page page2 = book.GetPage(2); Console.WriteLine(page2.Text); // возвращаемся на первую страницу page1 = book.GetPage(1); Console.WriteLine(page1.Text); } //-Bridge- // создаем нового программиста, он работает с с++ Programmer1 freelancer = new FreelanceProgrammer(new CPPLanguage()); freelancer.DoWork(); freelancer.EarnMoney(); // пришел новый заказ, но теперь нужен c# freelancer.Language = new CSharpLanguage(); freelancer.DoWork(); freelancer.EarnMoney(); //-Flyweight- double longitude = 37.61; double latitude = 55.74; HouseFactory houseFactory = new HouseFactory(); for (int i = 0; i < 5; i++) { House1 panelHouse = houseFactory.GetHouse("Panel"); if (panelHouse != null) { panelHouse.Build(longitude, latitude); } longitude += 0.1; latitude += 0.1; } for (int i = 0; i < 5; i++) { House1 brickHouse = houseFactory.GetHouse("Brick"); if (brickHouse != null) { brickHouse.Build(longitude, latitude); } longitude += 0.1; latitude += 0.1; } #endregion }
static void Main(string[] args) { //Factory Method Developer dev = new PanelDeveloper("ООО КирпичСтрой"); House house2 = dev.Create(); dev = new WoodDeveloper("Частный застройщик"); House house = dev.Create(); Console.ReadLine(); //Abstract Factory Hero elf = new Hero(new ElfFactory()); elf.Hit(); elf.Run(); Hero voin = new Hero(new VoinFactory()); voin.Hit(); voin.Run(); Console.ReadLine(); //Prototype IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); Console.Read(); //Builder // содаем объект пекаря Baker baker = new Baker(); // создаем билдер для ржаного хлеба BreadBuilder builder = new RyeBreadBuilder(); // выпекаем Bread ryeBread = baker.Bake(builder); Console.WriteLine(ryeBread.ToString()); // оздаем билдер для пшеничного хлеба builder = new WheatBreadBuilder(); Bread wheatBread = baker.Bake(builder); Console.WriteLine(wheatBread.ToString()); Console.Read(); //Strategy Car auto = new Car(4, "Volvo", new PetrolMove()); auto.Move(); auto.Movable = new ElectricMove(); auto.Move(); Console.ReadLine(); //Observer Stock stock = new Stock(); Bank bank = new Bank("ЮнитБанк", stock); Broker broker = new Broker("Иван Иваныч", stock); // имитация торгов stock.Market(); // брокер прекращает наблюдать за торгами broker.StopTrade(); // имитация торгов stock.Market(); Console.Read(); //Command Pult pult = new Pult(); TV tv = new TV(); pult.SetCommand(new TVOnCommand(tv)); pult.PressButton(); pult.PressUndo(); Console.Read(); //Iterator Library library = new Library(); Reader reader = new Reader(); reader.SeeBooks(library); Console.Read(); //State Water water = new Water(new LiquidWaterState()); water.Heat(); water.Frost(); water.Frost(); Console.Read(); }