Описание тега template-method-pattern

The Template Method pattern is a design pattern that defines the program skeleton of an algorithm in a method, called a template method, which defers some steps to subclasses. It is one of the Gang of Four's behavioral design patterns.
3 ответа

Шаблонный шаблон, где каждая реализация требует разных аргументов?

У меня есть базовый абстрактный класс, который нуждается в алгоритме для аутентификации. У меня есть две реализации этого: один будет хэшировать пароль и сравнивать его с сохраненным хэшем, другой будет использовать Windows Active Directory. Но пере…
06 май '14 в 20:03
3 ответа

Соглашения об именах Python для атрибутов и методов, предназначенных для перезаписи

У меня есть некоторый объектно-ориентированный код в Python, где некоторые классы должны быть расширены, чтобы обеспечить отсутствующие пользовательские фрагменты кода (как шаблонный метод, но также с переменными), которые будут использоваться тольк…
6 ответов

Наследование строк документации методов в Python

У меня есть OO-иерархия со строками документации, которые требуют столько же обслуживания, сколько и сам код. Например, class Swallow(object): def airspeed(self): """Returns the airspeed (unladen)""" raise NotImplementedError class AfricanSwallow(Sw…
4 ответа

Каковы сходства между шаблонным методом и шаблонами разработки стратегии

Это пример шаблона TemplateMethod?? public abstract class Character{ public final void useWeapon(){ useBusterSword(); useMateriaBlade(); useUltimateWeapon(); } public abstract void useBusterSword(); public abstract void useMateriaBlade(); public abs…
0 ответов

Являются ли Eloquent Mutators реализацией шаблонного метода проектирования?

Eloquent Accessors and Mutators ( https://laravel.com/docs/5.5/eloquent-mutators) выглядят для меня как реализация шаблона разработки метода шаблона ( https://sourcemaking.com/design_patterns/template_method) Абстрактная модель имеет несколько метод…
3 ответа

Что такое "шаблон метода шаблона" в какао с объектом C? (Сравнение языков мышления)

Вот шаблон шаблонного метода, Java и C++ могут легко реализовать его с помощью виртуальной функции. Как насчет Object C для реализации этого шаблона? Любой пример касания какао (iOS)?
3 ответа

Значение `this` в шаблоне метода шаблона JS

Почему отмеченная строка не может найти protectedACMember? var Module = (function (ns) { function AbstractClass() { this.protectedACMember = "abstract"; this.abstractPublicACMethod = function (input) { this.methodToImplement(); } } ConcreteClass.pro…
2 ответа

Как совместить шаблон шаблонного метода и множественное наследование?

Могу ли я изменить этот код, чтобы он работал? Можно ли объединить шаблон шаблонного метода и множественное наследование? Кажется, очень удобно реализовывать разные алгоритмы в разных классах. Спасибо. class TBase { public: virtual void Do1() const …
1 ответ

Шаблонный метод в JavaScript

Я хочу, чтобы в JavaScript, чтобы реализовать шаблон шаблонов метода. У меня есть PropertyDecorator с некоторыми подклассами: OpenButtonDecorator, SeeButtonDecorator и так далее. Я хочу иметь в Property decorator следующую функцию: var build = funct…
1 ответ

Добавить функциональность в список в Java

Мне нужно добавить следующие функции в любую реализацию List<>: - полученный объект никогда не должен показывать исключение OutOfBounds для положительных индексов - когда вы вызываете get(x) с x=size, он автоматически увеличивает список до размер x+…
2 ответа

C++: Разница между шаблонами NVI и шаблонами?

В чем разница между шаблонами NVI ( не виртуальный интерфейс) и шаблонным методом? Они кажутся очень похожими, и я прочитал, что они в основном одинаковы, и что они слегка отличаются, так как Template является более общим.
1 ответ

Почему класс NeverSwitch перекрывает мой класс AlwaysSwitch?

Я использую шаблонный метод. У меня есть драйвер, который предоставляет мне игру, которая создает игру и проходит через один из двух классов переключения: AlwaysSwitch или NeverSwitch. Затем драйвер создает пробную версию Always Switch и отдельную п…
18 фев '19 в 00:54
2 ответа

Шаблонный метод и наследование или композиция

У меня есть следующие занятия: @Data @AllArgsConstructor @NoArgsConstructor public class User { private String name; private int age; } @Data @AllArgsConstructor @NoArgsConstructor public class Admin { private String name; private int age; } И у мен…
3 ответа

Шаблонный шаблон для статических классов

У меня есть класс утилит, которые выполняют некоторую работу. Очевидно, что он закрыт для расширения и все методы являются статическими. Для простоты класс выглядит так: public final class Util { private Util() { } public static void doWork() { // s…
5 ответов

Какой самый простой способ удовлетворить чистый абстрактный метод с помощью методов из других базовых классов

Изменить: За некоторые комментарии под простым я имею в виду а) меньше кода, б) простота в обслуживании и в) трудно ошибиться. Редактирование № 2: Кроме того, использование сдерживания вместо частного наследования не является нежелательным, если оно…
2 ответа

Реализация шаблонного метода

Примечание. Следующий вопрос касается шаблона разработки метода шаблона и шаблонов функций C++. Чтобы различать оба, я буду использовать курсив при обращении к шаблону проектирования и жирный при обращении к шаблонам C++. Идея шаблона метода шаблона…
2 ответа

Порядок вызова метода шаблона в python

Каков был бы самый простой способ запустить функцию модульного тестирования? Здесь меня не интересует, что делают fun* функции, но только в том случае, если порядок их вызова правильный. from mock import Mock (many, arguments, four, fun) = ('many', …
3 ответа

ООП - недопустимое имя класса по умолчанию?

Я реализую шаблонный тип шаблона и у меня есть несколько классов для реализации поведения. В качестве примера моя структура выглядит следующим образом: TemplateAbstract Type CustomType1 CustomType2 CustomType3 Default Класс "Default" содержит поведе…
17 дек '12 в 14:18
2 ответа

Добавление инвариантов в идиоме не виртуального интерфейса

Предположим, у меня есть следующая иерархия, использующая идиому NVI: class Base { public: virtual ~Base() {} void foo() { cout &lt;&lt; "Base::foo" &lt;&lt; endl; foo_impl(); } private: virtual void foo_impl() = 0; }; class A : public Base { privat…
1 ответ

Это хорошая практика для реализации Pattern Template Pattern с помощью событий C#?

Сейчас я пытаюсь понять некоторый код, и я нашел шаблон, который кажется мне немного странным. Существует пользовательский класс управления с событием EditorOpen. Сначала я думал, что это имя неверно, потому что оно не заканчивается на "-ing" или "-…