Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 26.08.2018
Сообщений: 4

Программирование на уровне интерфейсов и объект Mapper,

26.08.2018, 13:40. Показов 1125. Ответов 2

Студворк — интернет-сервис помощи студентам
Вообщем прочитал я про SOLID, не много про партерный. И решил спроектировать простой Mapper на Java. Если это можно Mapper`ом назвать.
Для вариации алгоритма решил использовать паттерн Стратегия. Но что то не получается, я не могу разобраться с обобщениями. Может я что то в корне не так делаю?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Mapper {
 
    private MapperStrategy strategy;
 
    public void setStrategy(MapperStrategy strategy) {
        this.strategy = strategy;
    }
 
    public <T, V> T execute(V item) {
        return strategy.execute(V);
    }
 
    interface MapperStrategy<T, V> {
        T execute(V item);
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.08.2018, 13:40
Ответы с готовыми решениями:

Проектирование на уровне интерфейсов - как это?
Доброго времени суток! Вот не раз и не два слышал о том, что проектировать приложение следует на уровне интерфейсов. Но что на самом...

Вывод текущей даты используя информацию из CMOS памяти и портов ввода-вывода (70h-7Fh)
Здравствуйте! Помогите кто чем может! На входном языке Ассемблер разработать программу, которая выводит текущую дату используя информацию...

Программирование звуковой карты на уровне портов
использую radasm + masm32 (если возможно то для link16.exe) нашёл вот такой код, сам почти не имею представления как это делаеться ...

2
 Аватар для rerf2010rerf
46 / 79 / 6
Регистрация: 10.08.2013
Сообщений: 237
26.08.2018, 13:48
Сам класс Mapper тоже нужно сделать параметризованным Mapper<T, V>. И, соответственно, и его поле strategy. А отдельную параметризацию метода execute убрать.
1
0 / 0 / 0
Регистрация: 26.08.2018
Сообщений: 4
26.08.2018, 14:25  [ТС]
rerf2010rerf,
Если я понял, вы это имели введу?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Mapper<T, V> {
 
    private MapperStrategy<T, V> strategy;
 
    public void setStrategy(MapperStrategy<T,V> strategy) {
        this.strategy = strategy;
    }
 
    public T execute(V item) {
        return strategy.execute(item);
    }
 
    interface MapperStrategy<T, V> {
        T execute(V item);
    }
}
Добавлено через 27 минут
И если пойти дальше. То и для class`а Mapper тоже нужен интерфейс.
Может лучше было реализовывать Mapper не через стратегию?
Как все таки лучше сделать?

MapperBase интерфейс мапера

Java
1
2
3
4
5
6
7
8
9
public interface MapperBase<T, V> {
    void setStrategy(MapperStrategy<T, V> strategy);
 
    T from(V item);
 
    interface MapperStrategy<T, V> {
        T execute(V item);
    }
}
а вот и сам Mapper

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Mapper<T, V> implements MapperBase<T, V> {
 
    private MapperStrategy<T, V> strategy;
 
    public Mapper(MapperStrategy<T, V> strategy) {
        this.strategy = strategy;
    }
 
    @Override
    public void setStrategy(MapperStrategy<T, V> strategy) {
        this.strategy = strategy;
    }
 
    @Override
    public T from(V item) {
        return strategy.execute(item);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2018, 14:25
Помогаю со студенческими работами здесь

За какое время можно изучить веб-программирование на низком уровне?
Народ подскажите за какое время(примерно) уделяя 30 часов в неделю можно изучить веб-программирование(php,mysql,JavaScript) чтобы можно...

Разработка интерфейсов, использование механизма наследования интерфейсов и применение их в программах
Имеется код, необходимо реализовать, и протестировать эти интерфейсы IComparable (сравнимый), ICloneable (клонируемый). Помогите...

Создает на n - уровне вложенный список, элементом которого на самом нижнем уровне является n
Я решил задачу так: CL-USER 1 &gt; (defun f (l n) (cond (( eq n 0) l) ((null l) (f (list n) (- n 1))) (t (f (cons...

Объектно-ориентированное программирование, объект: линия
Опишите тип объектов – линия с параметрами: координаты вершин, стороны, цвет. Пусть методами будут А) порождение линии; Б) изменение ее...

Прикладное программирование. Использовать объект Range
'Составить программу ввода данных из текстового файла и записать их в ячейку колонки А, на любом листе в любой книге. Использовать объект...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru