Я очень долго работал над проектированием баз данных, а сейчас работаю и на C #. Для меня объектно-ориентированный подход имеет смысл, но я не чувствую, что у меня есть хорошее основание в глубокой теории объектно-ориентированного проектирования.
В области баз данных существует множество теорий о том, как проектировать структуру базы данных, основным понятием является нормализация. Нормализация напрямую управляет структурой базы данных и в некоторой степени диктует, как упорядочивать сущности в базе данных.
Есть ли какие-либо похожие концепции при проектировании структуры объектно-ориентированной программы?
Я стремлюсь к одному или нескольким основополагающим теоретическим принципам, которые естественным образом направляют разработчика к правильному дизайну решения данной проблемы.
Где я могу найти дополнительную информацию?
Есть ли полезные работы, которые мне стоит прочитать?
Обновлять:
Спасибо всем за ответы. То, что я читаю, похоже, говорит о том, что большой теории объектно-ориентированного проектирования не существует, но есть ряд важных принципов, которые в значительной степени иллюстрируются шаблонами проектирования.
Еще раз спасибо за ответы :)