- Регистрация
- 23.08.2012
- Сообщения
- 492
- Реакции
- 97
- Баллы
- 28
- Возраст
- 47
- Местоположение
- РФ, Москва
- Native language | Родной язык
- Русский
Доброго здоровья!
Пытаюсь разрабатывать архитектуру программы. Допустим есть 4 класса (не наследники, не интерфейсы),
Например:
Engine занимается обработкой физических взаимодействий тел.
Entity - класс персоналий, которые могут совершать действо.
Action - класс действий: любые действия которые могут быть совершены.
Draw - отрисовка интерфейса, вывод графики.
Крутится такая мысль: изменять значения полей класса Entity - может только класс Engine. Остальные классы не должны иметь возможность как либо влиять на класс Entity.
Как можно это дело реализовать? Возможно ли вообще определить каким классам есть доступ к целевый классам, а каким нет? Обычной области видимости не хватает, т.к. все описанные классы пока что находятся в одной сборке. Я подумываю реализовать это через интерфейсы. Entity : MyInterface; Соответственно класс Engine будет обрабатывать только те объекты, которые поддерживают соотвествующий интерфейс.
Может быть я не правильно подхожу к вопросу? Что стоит почитать?
Пытаюсь разрабатывать архитектуру программы. Допустим есть 4 класса (не наследники, не интерфейсы),
Например:
Engine занимается обработкой физических взаимодействий тел.
Entity - класс персоналий, которые могут совершать действо.
Action - класс действий: любые действия которые могут быть совершены.
Draw - отрисовка интерфейса, вывод графики.
Крутится такая мысль: изменять значения полей класса Entity - может только класс Engine. Остальные классы не должны иметь возможность как либо влиять на класс Entity.
Как можно это дело реализовать? Возможно ли вообще определить каким классам есть доступ к целевый классам, а каким нет? Обычной области видимости не хватает, т.к. все описанные классы пока что находятся в одной сборке. Я подумываю реализовать это через интерфейсы. Entity : MyInterface; Соответственно класс Engine будет обрабатывать только те объекты, которые поддерживают соотвествующий интерфейс.
Может быть я не правильно подхожу к вопросу? Что стоит почитать?