У меня есть проект C #, в котором я использую шаблон Memento / Command для реализации функциональности Undo / Redo.Приложение представляет собой приложение WPF, которое использует StructureMap для IOC, имеет обширные модульные тесты и использует моделирование через интерфейсы с использованием RhinoMocks.
В моем коде у меня есть класс Operation
, который представляет все отменяемые операции, итакже есть интерфейс IRepositoryWriter
, через который маршрутизируются все записи в базу данных.
Мне интересно, каков наилучший способ применения политики, которая должна быть в состоянии только Operation
и его производные классыиспользовать IRepositoryWriter
.
Очевидный способ добиться этого - сделать IRepositoryWriter
защищенным вложенным интерфейсом Operation
.
Преимущества : только Operation
и производные классы имеют доступ к IRepositoryWriter
.
Недостатки : больше не может использоваться с StructureMap или Unit Tested.
Какие есть другие решения для этого?Политика не обязательно должна быть строго обязательной - достаточно просто дать подсказку кому-то другому, работающему с кодовой базой.