Ответы пользователя по тегу ООП
  • Что делать с объектом при удалении инфы из базы данных?

    Flammar
    @Flammar
    После удаления объекта можно ещё стирать значение первичного ключа — тогда, если что, можно прямо тот же объект корректно вставить в базу «на новенького».

    А вообще, ActiveRecord — это bad practice, от которой давно отказались в JAVA ORM-фреймворках, чтоб не засорять доменные объекты посторонней логикой (ответственной за их сохранение), которая может меняться. Теперь правильно — entityManager.delete(object).

    Вообще, наличие у объекта сильно сложных методов (т.е. таких, которые принимают в качестве аргументов другие такие же объекты, а не только примитивы), в ситуации, когда нельзя добавлять методы в рантайме, — это tight coupling и, поэтому, bad practice.
    Ответ написан
    Комментировать
  • Подскажите курсы по шаблонам (pattern) проектирования?

    Flammar
    @Flammar
    Почему у вас возник такой, в общем-то, странный вопрос? Заставляют? Будут спрашивать на собеседовании? Нужен сертификат именно по дизайн-паттернам?

    Думаю, лучше почитать сначала критику — norvig.com/design-patterns/ppframe.htm (там, кроме того, на некоторых кадрах хорошо раскрыта сущность понятия дизайн-паттерна) и www.paulgraham.com/icad.html (последние процентов 15 текста). Потом соответстующую статью в википедии.

    У нас паттерны, как заметили выше, часто могут ассоциироваться с «нецензурщиной», и это во многом справедливо (ага, раздули себе ЧСВ до уровня Норвига с Грэхэмом).

    Дело в том, что из 23 «классических» паттернов у 17 «ноги растут» из «перевода с LISP на С++» (т.е.они представляют собой продукт первой фазы «ручной компиляции» мыслей, выраженных на нормальном функциональном языке), ещё 2 — Adapter и Bridge вместе с Proxy, котрый выходит и в предыдущую группу — это трансляторы вызовов без сохранения состояния. Decorator, котрый выходит и в первую группу, и Facade — это перегруппировка-примешивание вызовов, тоже без сохранения состояния в самом объекте. И только Prototype, Composite и Memento могут полноценно расстматриваться как самостоятельные дизайн-паттерны плюс первая, вторая и отчасти третья группа понтянут на одну штуку каждая, итого 6 штук;-).

    Если уж очень нужны курсы, то лучше после википедии и критики почитать книжку. Посмотреть программу — www.rdtex.ru/win/courses.overview?ccode=SL-500-EE5 — и поискать подробности в википедии. Ну если есть лишние 54000, можно и на курсы пойти. Чем хороши курсы (я 12 лет назад курсы по Ораклу у них проходил), что по времени это будет экономнее чтения книги, и, наверное, даже эффективнее (плюс методичку дадут).

    Да, и Java5, упомянутая в том курсе, — устаревшая версия, выброшенная в релиз в «сыром» виде, в ней с аннотациями напряжёнка. Java6 более законченная и оформленная, такое впечатление, что Java5 — её ранняя пробная бета-версия.
    Ответ написан
    Комментировать