У меня есть объект-значение (ВО). Одно из полей / свойств - «sourceKey», которое содержит строковое значение.
For Example:
String sourceKey1 = "cust12/proj1/site1/images/somefile.JPG"
String sourceKey2 = "cust12/area1/site1/images/somefile.JPG"
Теперь мне нужно как бы преобразовать этот sourceKey и создать целевой ключ, сначала разбив исходный ключ на '/', а затем:
- замените cust12, позвонив в службу поддержки клиентов - найдите клиента по идентификатору 12 и замените cust12 на имя клиента в ключе dest.
- аналогично замене proj1 - вызвать службу проекта, найти проект по id 1 и заменить proj1 на имя проекта.
- и так далее..
Поэтому, чтобы добиться этого в чистом виде, я подумал о написании команд - каждой команды для извлечения объекта путем вызова соответствующей службы (customerService, projectService и т. д.). А затем на уровне клиента просто проанализируйте sourceString и создайте список команд для выполнения, а затем, наконец, создайте ключ назначения, используя список команд.
Я думаю в правильном направлении? Является ли шаблон команды чистым / OO способом сделать это?




Нет, шаблон команд не подходит для этой проблемы. С точки зрения ООП, я бы начал с моделирования исходного ключа как Object, а не как String, чтобы избежать программирования строчно-типизированный.
Похоже, что объект SourceKey будет зависеть от CustomerService и ProjectService и будет содержать пять полей, которые при необходимости можно объединить в String. Другими словами, попробуйте инкапсулировать логику преобразования String в собственный Object.