Последние комментарии

Для меня эта страница - это удобный способ смотреть, что нового происходит в комментариях и сразу находить заметку, не заходя в админку. Думаю, она будет полезна и тебе.


VVS

я конечно понимаю что может быть я не прав, но при написании проектов (тем более больших) разве сейчас пишут ручками такие элементарные
функции? я купил например библиотеку компонентов DevExpress за 10000 рублей, а там такой функционал по поиску, фильтрации, сортировке, редактированию и т.д. и т.п. что мне
и за 10 лет такое не написать, смысл тогда заморачиваться с такими вещами? соответственно у меня возникает вопрос о целесообразности
написания класса прослойки для работы с базой данных?

Ведь DevExpress, не сделает автоматическую выборку из БД того что нужно, не предусмотрит какие-то специфические методы? Вы все равно будете делать прослойку между DevExpress и вашей БД.
Если вы не хотите писать запросы ручками, используйте Entity Framework или другую ORM(как я понял DevExpress именно это вам и предоставляет), но вам все равно придеться создавать какую-то прослойку м/у вашей БД и тем что вы используете для доступа к ней.


Серега

Миша, у тебя нагло тырят контент. Вот эту статью http://www.flenov.info/favorite.php?artid=24 стырили сюда: http://yapro.ru/web-master/xhtml/zakoni_verstki_sayta.html


ronin

Теперь, при создании любого класса, работающего с базой, просто передавайте ему этот интерфейс и вы в шоколаде.
Захотите мигрировать на другую базу данных, просто создадите еще одну реализацию MyMegaDBOracle и измените одну строку коды и вперед


тут я не понял, например, у меня работа идёт с Mysql, а я решил переходить на Oracle, а там другой синтаксис запросов, другой набор
компонентов доступа к бд с другой реализацией работы с этой базой (свойства, методы, события), что в этом случае значит "одна строка кода"?
мне ведь всё равно прийдётся перелопачивать весь этот класс для того что бы либо добавить этот функционал, либо переписать старый, разве не так?
в чём преимущества данного подхода?

В больших проектах иногда встает вопрос о том, чтобы проекты могли работать одновременно с разными базами данных. Сегодня заказчик хочет MS SQl Server, а
завтра он понимает, что нужно Oracle. А кто-то может не захотеть платить деньги и затребует MySQL. Использование интерфейсов позволит без проблем подменять
классы доступа к данным и прогрессировать с минимальными потерями


это как раз к вопросу выше, как эти потери станут минимальными при таком подходе?

Такие функции как поиск строки, обновление и удаление выглядят во всех базах данных одинаково, потому что SELECT он и в Африке SELECT.
Поэтому такие функции как FindRow, DeleteRow могут быть описаны прямо в базовом классе


я конечно понимаю что может быть я не прав, но при написании проектов (тем более больших) разве сейчас пишут ручками такие элементарные
функции? я купил например библиотеку компонентов DevExpress за 10000 рублей, а там такой функционал по поиску, фильтрации, сортировке, редактированию и т.д. и т.п. что мне
и за 10 лет такое не написать, смысл тогда заморачиваться с такими вещами? соответственно у меня возникает вопрос о целесообразности
написания класса прослойки для работы с базой данных?


Михаил Фленов

Где лучше использовать инрефейсы, а где лучше абстрактные методы? В чем принципеальная разница?


Разниц много, но с точки зрения проектирования, все очень даже схоже. Где и что лучше использовать, сказать не могу. Я предпочитаю использовать абстрактные классы для случаев, когда описывается большой класс, и интерфейсы, когда нужно всего пару тройку методов. Просто если у интерфейса всего пару методов, то их можно реализовать где угодно, ведь интерфейсы позволяют множественное наследование и это придает дополнительную гибкость. Если методов много, то я предпочитаю абстрактные классы.


Михаил Фленов

В статье есть тект, похожий на теги <object> и IE проигнорировл это, а FF убил разметку страницы. Исправилено


Денис

Поправьте, пожалуйста, верстку. Текст, после примеров, читать невозможно.
Или это только у меня?


Topal

Где лучше использовать инрефейсы, а где лучше абстрактные методы? В чем принципеальная разница?


Topal

Статья понравилась, побольше бы таких статей. Только мне ее пришлось в Word копировать, чтоб прочитать (
много текста уходит за пунктирные поля (и в опере и в хроме таже проблема))


ronin

чё то Михаил ты там намудрил с оформлением, поправь, а то не удаётся почитать :)


Ерлан

Привет.
Статью неудобно читать))


О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне