Описание тега visitor-pattern
Шаблон проектирования посетителя - это способ отделения алгоритма от структуры объекта, на которой он работает. Практический результат этого разделения - возможность добавлять новые операции к существующим структурам объектов без изменения этих структур. Этот тег является синонимом наиболее часто используемого тега [посетитель] - используйте его вместо этого тега.
1
ответ
Шаблон посетителя и свободный синтаксис в стиле LINQ для API обхода дерева
Я подумываю о рефакторинге проекта с открытым исходным кодом Afterthought, чтобы сделать его более интуитивно понятным в использовании. Основная идея заключается в том, что разработчики, создающие поправки в Afterthought, будут вносить изменения в к…
28 май '11 в 14:09
2
ответа
Шаблон дизайна посетителя, Как работать с оператором If-else
Постановка задачи: Существует три типа машин: Machine1 Machine2 и Machine3. Существует три типа валидаторов: ValidatorX, ValidatorY, ValidatorZ. Каждый валидатор проверяет каждую машину по-разному. Напишите классы Java, чтобы проектировать вышеупомя…
12 июл '14 в 07:51
3
ответа
Как преодолеть проблему со стиранием типов для реализации посетителем
Я начинаю работать с Java после некоторых проектов на C# и C++. Я хотел спроектировать интерфейсы посетителей следующим образом: public interface ActionVisitor<A> { void visitAction(A action); } public interface MySmallActionVisitor extends Ac…
29 дек '10 в 06:06
0
ответов
Альтернатива шаблону посетителя
Известная проблема с Visitor Pattern - это то, что он плохо масштабируется с богатой иерархией классов (даже если вы не часто добавляете классы). Когда вы объединяете шаблон посетителя с шаблоном команды, открываются врата ада. Ваш интерфейс посетит…
05 июн '18 в 17:59
1
ответ
Статическая (время компиляции / строго типизированная) поддержка множественной диспетчеризации в C#
Недавно я снова и снова использовал один и тот же шаблон в своем коде. По сути, это вариант шаблона посетителя, который я использую для преобразования ссылок на экземпляры базовых классов в производные. Этот подход требует много стандартного кода. В…
02 мар '12 в 23:02
3
ответа
Избегайте использования InstanceOf с шаблоном посетителя - Java
Я искал об этом объекте в Stack Overflow. Я нашел следующее решение: Объяснение шаблона посетителя Теперь мой случай похож на этот. Мне нужно, однако, чтобы избежать использования "instanceOf". У меня есть игра, в которой названы башни MonkeyTower, …
08 янв '16 в 00:16
1
ответ
Получить тип шаблона класса в шаблоне посетителя
Я пытаюсь написать систему обмена сообщениями с шаблонами, шаблонами посетителей и с помощью CRTP. Я понимаю эти концепции, но, тем не менее, я нахожусь в ситуации, когда мне нужно вернуть "потерянный" тип. у меня есть Base класс, и я хочу найти Der…
21 апр '17 в 21:59
1
ответ
Нанимайте через разнородный и типобезопасный словарь
Мне нужен контейнер, который работает как Ditionary, но где тип данных (TValue) переход с одного ключа на другой. Я также должен повторить через это.
14 сен '15 в 09:16
3
ответа
Используйте шаблон посетителя, чтобы обработать другое, если
Интересно, есть ли способ справиться с простым условием с помощью шаблона посетителя или нет? Например, если у нас есть приведенный ниже код, как мы можем применить к нему шаблон посетителя? public class Elseif { private int total; public int Condit…
30 янв '13 в 21:17
1
ответ
Как распространять обновления для всех элементов в графе элементов Colectica DDI?
Недавно мне нужно было обновить более ста элементов Concept, используя скрипт, использующий Colectica SDK для DDI, и мне нужно распространять эти обновления по всем местам в наборе с известным корневым элементом Project. Это означает, что каждый эле…
14 окт '13 в 08:36
3
ответа
Головоломка производительности Java: классы-оболочки быстрее, чем примитивные типы?
Чтобы реализовать некоторые алгоритмы анализа изображений, не беспокоясь о типе данных (т. е. не имея слишком много повторяющегося кода), я настраиваю шаблон посетителя для примитивных массивов в Java. В приведенном ниже примере я определил два типа…
10 сен '12 в 12:33
2
ответа
Рефакторинг устаревшего экземпляра корпуса коммутатора с помощью шаблонов проектирования
Унаследованный код моей компании страдает от распространенного использования экземпляра кожуха коммутатора в виде: if(object instanceof TypeA) { TypeA typeA = (TypeA) object; ... ... } else if(object instanceof TypeB) { TypeB typeB = (TypeB) object;…
29 мар '18 в 15:51
1
ответ
Вопросы, связанные с внедрением шаблона проектирования посетителей
Исходя из моих текущих требований, я реализовал шаблон Visitor, и у нас есть несколько различных аспектов: 1> В отличие от классического примера, проиллюстрированного в книге GoF, подклассы Equipment не выровнены. Другими словами, все подклассы нахо…
02 авг '12 в 15:50
0
ответов
Есть ли C++/CLI, эквивалентный C# приведению к динамическому типу?
Я расширяю иерархию классов, написанную на C#, которая реализует шаблон Visitor (двойная диспетчеризация) с использованием динамического ключевого слова, как описано здесь. Вот очень упрощенный псевдокод того, что я сейчас делаю в C#: public class C…
07 дек '16 в 03:53
2
ответа
C++, избегать RTTI и шаблон посетителя, это возможно?
Я смотрел на некоторые связанные темы, но до сих пор не нашел ничего, что отвечает на следующий вопрос. Допустим, у меня есть иерархия классов (например, виджеты, элемент HTML), которые образуют древовидную структуру. Когда я иду по дереву или ищу к…
14 мар '13 в 09:39
1
ответ
Ищите противоположность SqlGeometryBuilder: Как я могу разложить SqlGeometry?
Я знаю как составить SqlGeometry с помощью SqlGeometryBuilder, например: // using Microsoft.SqlServer.Types; SqlGeometryBuilder geometryBuilder = new SqlGeometryBuilder(); geometryBuilder.SetSrid(…); geometryBuilder.BeginGeometry(OpenGisGeometryType…
28 ноя '16 в 21:56
3
ответа
Шаблон посетителя
Когда я читаю о шаблоне посетителя, он говорит как Позволяет применять одну или несколько операций к набору объектов во время выполнения, отделяя операции от структуры объекта. Если мое предположение верно, мы определим абстрактного посетителя, кото…
27 май '15 в 15:23
2
ответа
Проблема петли посетителя
Я использую следующий код шаблона посетителя для анализа файла XML: using RimWorld; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Xml; using UnityEngine; using Verse; namespace Co…
14 июл '14 в 02:46
2
ответа
Использование шаблона посетителя с шаблонными производными классами
Я пытаюсь реализовать шаблон Visitor с шаблонными производными классами Я работаю с gcc 4.5 вот VisitorTemplate.hpp, я специализировал Derived в классе Visitor, но я бы хотел иметь возможность обрабатывать любой тип: редактировать: благодаря предлож…
24 окт '11 в 13:14
2
ответа
Циклическая зависимость: IVisitor и Datas
Недавно я спросил о циклической зависимости. Ответом было посвятить проект по интерфейсам (MyProject.Abstractions). Теперь этот проект является причиной другой циклической зависимости с шаблоном Visitor. namespace MyProject.Abstractions { public int…
22 окт '18 в 19:23