51 lines
818 B
D
51 lines
818 B
D
|
module factorymethod.pizzasimple.pizza;
|
||
|
|
||
|
import std.stdio : writeln;
|
||
|
|
||
|
abstract class Pizza
|
||
|
{
|
||
|
protected:
|
||
|
string name;
|
||
|
string dough;
|
||
|
string sauce;
|
||
|
string[] toppings;
|
||
|
public:
|
||
|
string getName()
|
||
|
{
|
||
|
return name;
|
||
|
}
|
||
|
|
||
|
void prepare()
|
||
|
{
|
||
|
writeln("Подготовка " ~ name);
|
||
|
}
|
||
|
|
||
|
void bake()
|
||
|
{
|
||
|
writeln("Выпечка " ~ name);
|
||
|
}
|
||
|
|
||
|
void cut()
|
||
|
{
|
||
|
writeln("Резка " ~ name);
|
||
|
}
|
||
|
|
||
|
void box()
|
||
|
{
|
||
|
writeln("Упаковка " ~ name);
|
||
|
}
|
||
|
|
||
|
override string toString() const @safe pure nothrow
|
||
|
{
|
||
|
string s;
|
||
|
s ~= "---- " ~ name ~ " ----\n";
|
||
|
s ~= dough ~ "\n";
|
||
|
s ~= sauce ~ "\n";
|
||
|
foreach (val; toppings)
|
||
|
{
|
||
|
s ~= val ~ '\n';
|
||
|
}
|
||
|
return s;
|
||
|
}
|
||
|
}
|