From 3aee775190aae6bcbce3679cba4442ba5931cee9 Mon Sep 17 00:00:00 2001 From: Artem Darius Weber Date: Thu, 23 Jan 2025 08:00:06 +0300 Subject: [PATCH] feat: implement template method pattern for beverage preparation with tea and coffee classes --- template_method.rb | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 template_method.rb diff --git a/template_method.rb b/template_method.rb new file mode 100644 index 0000000..deddf08 --- /dev/null +++ b/template_method.rb @@ -0,0 +1,56 @@ + +class Beverage + # шаблонный метод + def prepare + boil_water + brew + pour_in_cup + add_condiments + end + + # общие методы + def boil_water + puts "Кипячение воды..." + end + + def pour_in_cup + puts "Наливание в чашку..." + end + + + def brew + raise NotImplementedError, "Метод 'brew' должен быть определён" + end + + def add_condiments + raise NotImplementedError, "Метод 'add_condiments' должен быть определён" + end +end + +class Tea < Beverage + def brew + puts "Заваривание чая..." + end + + def add_condiments + puts "Добавление лимона..." + end +end + +class Coffee < Beverage + def brew + puts "Заваривание кофе..." + end + + def add_condiments + puts "Добавление сахара и молока..." + end +end + +puts "☕️Приготовление чая:" +tea = Tea.new +tea.prepare + +puts "\n☕️Приготовление кофе:" +coffee = Coffee.new +coffee.prepare