Здравствуйте, lumf, Вы писали:
L>Здравствуйте, stump, Вы писали:
S>>Здравствуйте, lumf, Вы писали:
L>>>ну я понимаю, что лучше как можно сильнее расслоить систему.... но чем грозит моя ситуация?
S>>Например тем, что изменения в Data Access Lyaer могут повлечь изменения в Service Layer, чего хотелось бы избежать.
L>ну как бы могут..... но я пока вижу какие изменения в DAL: это смена БД ..... то есть я просто перепишу DAL и ничего в service layer править не буду...
L>а если придется править service layer то это уже меняется логика приложения, так? а какие изменения в DAL могут повлечь за собой изменения в service layer ?
Неизменным должно быть API слоя (фасад, интерфейсы, сигнатуры методов), чтобы не пришлось менять "вызывающий код". Меняться может реализация, в том числе база. Другое дело, если вызывающий класс занимается еще и инстанцированием объектов а класс под другую базу подругому называется.Можно юзать абстрактную фабрику, но опять же не знаю, как она будет вид базы узнавать (может из конфигов?), а можно вообще заюзать контейнер для
Dependency Injection.
здесь пример фреймворка от M$.