База ответов ИНТУИТ

Программирование на С/С++

<<- Назад к вопросам

Какие недостатоки шаблона «абстрактная фабрика»?

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
невозможно избежать возникновения иерархии создающих объектов, параллельной иерархии создаваемых объектов(Верный ответ)
добавление нового типа создаваемых объектов ведёт к переделке всех реализаций фабрики(Верный ответ)
ограничивает масштабируемость системы(Верный ответ)
необходимость вызова 2-х и более методов для создания объекта
Похожие вопросы
Какие методы входят в минимально-необходимый состав, который должен быть имплементирован при использовании поведенческого шаблона итератор?
Какие преимущества обеспечивает модель проталкивания данных от субъекта наблюдателю перед моделью вытягивания данных при реализации шаблона наблюдатель?
Каковы особенности шаблона «делегирование»?
Каковы особенности базового шаблона «неизменяемый объект»?
Каковы особенности базового шаблона «интерфейсный класс»?
<pre> //====================== start of sample.cpp ========================== template &lt;class Receiver&gt; class MyCommand: public Command { public: typedef void (Receiver::* Action)(); MyCommand(Receiver r, Action a): _receiver(r), _action(a){} void Execute(); int GetStatus(); private: Action _action; Receiver* _receiver; int _last_error; }; //====================== end of sample.cpp ========================== </pre> Какие атрибуты и методы класса MyCommand являются необходимыми для имплементации шаблона команда в файле sample.cpp?
<pre> //====================== start of sample.cpp ========================== #include &lt;string&gt; #include &lt;type_traits&gt; struct my_string { std::string s; my_string(const std::string&amp; s); }; int main(int argc, char* argv[]) { is_copy_constructible&lt;my_string&gt;; return 0; } //====================== end of sample.cpp ========================== </pre> Каким образом можно проверить требование CopyConstructable посредством шаблона стандартной библиотеки is_copy_constructible для типа my_string из файла sample.cpp?
<pre> //====================== start of sample.cpp ========================== template&lt;unsigned long N&gt; class binary { public: static unsigned long const value = binary&lt;N / 10&gt;::value &lt;&lt; 1 | N % 10; }; template&lt;&gt; class binary&lt;0&gt; { public: static unsigned long const value = 0; }; int main(int argc, char* argv[]) { static unsigned const xyz = binary&lt;111&gt;::value; return 0; } //====================== end of sample.cpp ========================== </pre> Конкретизация шаблона с значением 111 приводит:
<pre> //====================== start of sample.cpp ========================== template&lt;unsigned long N&gt; class binary { public: static unsigned long const value = binary&lt;N / 10&gt;::value &lt;&lt; 1 | N % 10; }; template&lt;&gt; class binary&lt;0&gt; { public: static unsigned long const value = 0; }; template&lt;&gt; class binary&lt;1&gt; { public: static unsigned long const value = 1; }; int main(int argc, char* argv[]) { static unsigned const x0 = binary&lt;0&gt;::value; static unsigned const x1 = binary&lt;1000&gt;::value; static unsigned const x2 = binary&lt;1001&gt;::value; static unsigned const x3 = binary&lt;1010&gt;::value; static unsigned const x4 = binary&lt;1011&gt;::value; return 0; } //====================== end of sample.cpp ========================== </pre> При инициализации какой переменной не будет использоваться конкретизация шаблона с параметром 0?
Какие контейнеры STL являются последовательными?