Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace OOP_Builder
- {
- class Program
- {
- static void Main(string[] args)
- {
- Cook cooker = new Cook(); // объект повара
- RollBuilder builder = new California(); //билдер калифорнии
- Roll califa = cooker.Cooks(builder);//катаем ролл
- Console.WriteLine(califa.ToString());
- builder = new Filadelfia();// билдер ролла филадельфии
- Roll fila = cooker.Cooks(builder);
- Console.WriteLine(fila.ToString());
- Console.Read();
- }
- //рыба
- class Fish
- {
- public string type { get; set; }
- }
- //рис
- class Rice { }
- //доп ингридиенты
- class Ingridients
- {
- public string Nazv { get; set; }
- }
- //сам класс ролла
- class Roll
- {
- public Fish fish { get; set; }
- public Rice rice { get; set; }
- public Ingridients ingridients { get; set; }
- public override string ToString()
- {
- StringBuilder sb = new StringBuilder();
- if (fish != null)
- sb.Append(fish.type + "\n");
- if (rice != null)
- sb.Append("Рис \n");
- if (ingridients != null)
- sb.Append("Добавки: " + ingridients.Nazv + " \n");
- return sb.ToString();
- }
- }
- // абстрактный класс строителя
- abstract class RollBuilder
- {
- public Roll roll { get; private set; }
- public void CreateRoll()
- {
- roll = new Roll();
- }
- public abstract void SetFish();
- public abstract void SetRice();
- public abstract void SetIngridients();
- }
- // класс повара
- class Cook
- {
- public Roll Cooks(RollBuilder rollBuilder)
- {
- rollBuilder.CreateRoll();
- rollBuilder.SetFish();
- rollBuilder.SetRice();
- rollBuilder.SetIngridients();
- return rollBuilder.roll;
- }
- }
- // класс ролла калифорния
- class California : RollBuilder
- {
- public override void SetFish()
- {
- this.roll.fish = new Fish {type = "тунец+тобика" };
- }
- public override void SetRice()
- {
- this.roll.rice = new Rice();
- }
- public override void SetIngridients()
- {
- this.roll.ingridients = new Ingridients { Nazv = "нори+огурец" };
- }
- }
- // класс ролла филадельфии
- class Filadelfia : RollBuilder
- {
- public override void SetFish()
- {
- this.roll.fish = new Fish { type = "лосось" };
- }
- public override void SetRice()
- {
- this.roll.rice = new Rice();
- }
- public override void SetIngridients()
- {
- this.roll.ingridients = new Ingridients { Nazv = "нори+сыр" };
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment