Задачи builder

Задача 1

Създайте програма с примера “Използване на Builder” от упражнението.

  • Допълнете класа Book с нужните полета и конструктори
  • Допълнете метода build, за да се създават обекти от Book.
  • Сложете нужните проверки, за да са валидни стойностите на полетата в класа Book (да се провери, че всяко поле от класа Builder е сетнато и може да се създаде обект Book, ако не може да се продуцира грешка)

Задача 2

Съставете програма която създава автомобили, с клас директора който дефинира реда за създаване на автомобилите. За целта ще имате нужда от:

  • Индерфейс Мotion с метод void go(double mileage)
  • Класове компонени на автомобилите:
    • Engine - обем, пробег, флаг за стартиран или спрян
      • Имплементира Motion като увеличава пробега на автомобила ако колата е в движение ако не е продуцира грешка
    • GPSNaviator - дестинация
    • Енумерация Transmission - SINGLE_SPEED, MANUAL, AUTOMATIC, SEMI_AUTATIC
    • TripComputer - връща информация за горивото в колата, състоянието на двигателя дали е стартиран или спрян и изминатия пробег.
  • Класове автомобил
    • Енумерация CarType с изброени типове автомобили CITY_CAR, SPORTS_CAR, SUV
    • Абстрактен клас Vehicle
      • полета
        • carType
        • seats
        • engine
        • transmission
        • tripComputer - кога се добавя инстанцията наавтомобила?
        • gpsNavigator
    • Клас Car с:
      • наследява Vehicle
      • Методи - за извличане стойностите на полетата
    • Клас Manual
      • наследява Vehicle
      • Метод toString връща информацията за автомобила и наличието или липсата на функция за “Trip Computer” и “GPS Navigator”
  • Класове за създаване на автомобили:
    • Интерфейс Builder с методи за сетване компонентите на автомобила и темплейтен метод build
    • Клас CarBuilder имплементира Builder
    • Клас CarManualBuilder имплементира Builder
  • Клас Direktor
    • Конструира градски автомобил
    • Конструира спортен автомобил
    • Конструира СУВ автомобил
  • В main се билдват трите вида автомобили

Задача 3

Преработете задачата за книжарница от упражнение 1 с използване на шаблона Builder

Задачи singleton

Задача 1

Използвайте програмата от задача 2 на лабораторно упражнение 9, като приложите Singleton за инстанцирането на обектит в Factory Method

  • Създайте обектите от класа само ако необходимо