Я пытаюсь смоделировать некоторые из наших объектов в нашем домене и столкнулся с проблемой, что некоторые из этих объектов могут иметь версии. то есть пользователь может создавать новые версии объекта в течение определенного периода времени. Итак, мне нужно смоделировать их в программе. Я думаю, что это обычная проблема в дизайне ПО.
Изначально я подскочил к идее имитации концепций управления версиями в системе управления версиями и придумал концепцию и методы версионного объекта, такие как регистрация, проверка и т. Д. Я не исследовал закономерности (т.е, я чувствую, что совершаю такие грехи, как
Итак, моя текущая проблема заключается в том, что для систематического моделирования мне нужно искать шаблоны, которые решают проблему моделирования версий, предпочтительно в литературе. И, конечно, извлечь из этого максимум пользы.
Итак, я поискал в Google такие шаблоны и нашел только шаблон Temporal Object . Но я не был уверен, действительно ли я этого хотел. Ребята, есть ли у вас какие-нибудь предложения по поводу таких шаблонов?
[Self-Edit] Возможно, я плохо описал проблему. Вы можете увидеть проблему, похожую на проблему управления версиями файлов в системе контроля версий. У меня есть несколько типов объектов (хранящихся в базе данных), которые могут иметь несколько версий. В моем приложении я должен обрабатывать все эти версии, а также мне придется создавать новую версию объектов (которые в конечном итоге будут храниться в базе данных). Я с нетерпением жду своего рода цитируемого шаблона, с помощью которого я могу моделировать интерфейсы для доступа / изменения / добавления новых версий для этих объектов. Базовый интерфейс, который я мог придумать, - это IVersionedObject с такими методами, как checkout, checkin, undoCheckout и т. Д. Но это моя собственная идея наблюдения за системами управления версиями. Я не думаю, что это шаблон проектирования SW как таковой. Итак, с нетерпением жду некоторых очень хорошо задокументированных шаблонов проектирования для вышеупомянутой проблемы.