Каково преимущество этого косвенного вызова функции?

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

Метод 1:

  • Вход в экземпляр EMR EC2
  • Перейти к пути конфигурации mapreduce (обычно / etc / hadoop / conf)
  • [113 ] Откройте mapred-site.xml и найдите ваши объекты.

Метод2:

Метод3:

  • Надеемся, что вы также можете увидеть все свои классификации из консоли Amazon EMR.

8
задан Frank 19 March 2009 в 17:50
поделиться

4 ответа

Это - Невиртуальная Интерфейсная Идиома (NVI). Та страница Herb Sutter имеет хороший бит детали об этом. Однако умерьте то, что Вы читаете там с тем, что Облегченный FAQ C++ говорит здесь и здесь.

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

Очевидный недостаток - то, что необходимо написать дополнительный код. Кроме того, private виртуальные функции сбивают с толку много людей. Многие кодеры по ошибке думают, что Вы не можете переопределить их. Herb Sutter, кажется, нравится private virtuals, но по моему скромному мнению более эффективно на практике следовать рекомендации Lite FAQ C++ и сделать их protected.

10
ответ дан 5 December 2019 в 11:27
поделиться

Это часто называет парой Шаблонного Рычага (иначе Горячая точка), выдумывает Wolfgang Pree.

Посмотрите этот PDF, PowerPoint, HTML

Одна причина того, чтобы сделать косвенность, как Вы называете его, состоит в том, что вещи часто могут/, чтобы быть установкой, предшествующей метод, и некоторые cleaing отправляют вызов метода. В подклассах только необходимо предоставить необходимое поведение, не делая установки и очистки...

3
ответ дан 5 December 2019 в 11:27
поделиться

Если подкласс мог бы изменить определение нечто _?, но потребителям была нужна статическая функция (для эффективности)? Или для шаблона делегации?

0
ответ дан 5 December 2019 в 11:27
поделиться

Это - шаблонный шаблон. Метод нечто содержит код, который должен быть выполнен всеми подклассами. Это имеет больше смысла при рассмотрении его как это:

class Bar {
public:
  bool foo(int i) {
   // Setup / initialization / error checking / input validation etc 
   // that must be done for all subclasses
   return foo_(i);
  }
private:
  virtual bool foo_(int i) = 0;
};

Это более хорошо, чем альтернатива, которая должна попытаться не забыть называть общий код в каждом подклассе индивидуально. Неизбежно, кто-то делает подкласс, но забывает называть общий код, приводящий к любому количеству проблем.

2
ответ дан 5 December 2019 в 11:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: