Лучшая книга, которую я когда-либо читал об объектно-ориентированном проектировании, - это Бертран Мейер Построение объектно-ориентированного программного обеспечения .
Это огромный, но очень полезный для меня. Он охватывает каждый аспект ОО-дизайна IMVHO.
Наиболее фундаментальной работой о объектно-ориентации, когда-либо опубликованном. Это абсолютно должно быть книга для каждого «объектно-ориентированного» программа.
2. « Объектно-ориентированный анализ и дизайн с приложениями « Grady Booch et al
не так формально как книга Мейера, но эта книга может открыть глаза на многие вопросы в объектно-ориентированном мире, а также в разработке программного обеспечения В целом
3. « Шаблоны дизайна: элементы многоразового объектно-ориентированного программного обеспечения « Erich Gamma et al.
Это известная «банда четырех» книги о рисунках дизайна
4. « рефакторинг: улучшение проектирования существующего кода » Martin Fowler et al.
Это еще одна классическая книга. Первая часть идеально описывает множество проблем, что современный разработчик программного обеспечения может столкнуться во время своей работы: кодовые запахи, читаемость против производительности, преждевременные недостатки оптимизации и многие другие темы.
5. « Мышление в Java « Брюс Экел
Эта книга может помочь многим новичкам не только на языке Java, но и на объектно-ориентированном виде.
6. « Прикосновение класса: учиться программировать хорошо с объектами и контрактами « Bertrand Meyer
Отличный учебник известного автора.
На самом деле программирование - это большая помощь, чем чтение о программировании.
«Парализованный некоторыми очень основными решениями» является симптомом более глубокой проблемы - чрезмерной инженерии. Пока вы не построите много вещей, вы на самом деле не знаете, какие решения принимаются и которые не имеют значения.
Лучший способ получить необходимый опыт - построить много вещей.
Код Ката очень, очень важен. http://slott-softwarearchitect.blogspot.com/search/label/code-kata
Кроме того, я собрал кучу кода Kata, который я использовал в одном крупном проекте. http://homepage.mac.com/s_lott/books/oodesign.html
Приложение эмуляции последовательного терминала Tera Term имеет язык сценариев, который будет способен настройку синхронизированные циклы.
http://en.wikipedia.org/wiki/Tera_Term
-121--4554082-Несмотря на то, что я склоняюсь к Rational UP, я нашел, что эти два предлагают много понимания дизайна OO.
Роберт К. Мартин "Agile Software Development: Принципы, узоры и практики ", в которой объясняются принципы ОО
Эрик Эванс: «Domain Driven Design» занимается тем, как сделать хороший дизайн, соответствующий вашей бизнес-проблеме
Мартин Фаулер: «Узоры архитектуры приложений предприятия» для базовых принципов архитектуры предприятия
Единственный способ выяснить, является ли дизайн надежным, это реализовать его. Нет единой книги, которая научит вас производить реализованные дизайны, она сводится к опыту и таланту. Тем не менее, я делаю второе голосование за книгу Бертранда Мейера - просто осознаешь, что это не превратит вас в Бога ОО.
Несмотря на то, что склонность к рациональному Нашел эти два, чтобы предложить много представления о дизайне OO.
Я полностью понимаю вашу ситуацию. Также собственные три из этих книг;) Я предложил руководитель первого издания. Объектно-ориентированный анализ и дизайн. Это получит вас на правильных треках. Книга GOF отлично, но без использования, пока вы не получите основы через голову, и голова первая книга позаботится об этом. Ура :)
Craig Larman's Применение UML и узоров Суммировано много о том, что я узнал из опыта. Что мне нравится в том, что он решает все аспекты проектирования программного обеспечения - который включает в себя такие вещи, как итеративный дизайн и разработка. Не старем слишком сильно при использовании UML: Описание дизайна - это средство к концу, и я нашел подход Лармана справедливо прагматично. Вы не можете просто код: вы должны сообщить о своих намерениях (и понять, что нужно). UML и чисто разработанные, хорошо прокомментированный код - это некоторые из средств к этой цели.
И, конечно же, как упоминание других: ни одна книга не сделает вас хорошим разработчиком или дизайнером. Но это может помочь ускорить процесс.
Для начала я предлагаю Head First Объектно-ориентированный анализ и проектирование. Он поможет вам создать ОО-приложение простым интуитивно понятным методом шаг за шагом.