При создании интерфейса, имеющего методы, которые, как ожидается, будут вызываться в определенном порядке, является ли такая практика эффективной зависимости или следует применить больше шаблонов и практик для ее "исправления" или улучшения ситуации?
Важно, чтобы пользователи некоторых интерфейсов вызывали методы в определенном порядке.
Существует множество различных примеров. Это то, что пришло в голову первым:
Интерфейс источника данных, автор которого предполагает, что метод init всегда вызывается первым вызывающим абонентом (т. Е. Для подключения к источнику данных или для поиска предварительной мета-информации и т. Д.), Перед вызовом любого другого из методов работы .
interface DataAccess {
// Note to callers: this init must be called first and only once.
void InitSelf();
// operation: get the record having the given id
T Op_GetDataValue<T>(int id);
// operation: get a cound
int Op_GetCountOfData();
// operation: persist something to the data store
void Op_Persist(object o);
//etc.
}
Однако вызывающая сторона может предпочесть не вызывать метод инициализации первым.
В общем, мне интересно, есть ли лучшие способы для этой ситуации.