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