OCP - Open Close Principle
От: zfima  
Дата: 21.03.12 09:21
Оценка:
Привет всем.
Недавно купил книгу по гибкой разработке на C#, читаю принципы.
Наткнулся на принцип OCP и появились вопросы.
Пример: класс Client использует класс Server. Если Client желает использовать другой объект, скажем FileServer, то надо менять код класса Client, а это противоречит принципу OCP. Значит воспользуемся абстракцией (такая фигня, которая с одной стороны фиксированная, так как имеет определённые абстрактные функции, а с другой стороны может иметь неограниченное количество реализаций), реализация которой сводится к интерфейсу с перегрузками
Теперь класс Client использует какой-то интерфейс, а имплементации у него могут быть FileServer, TextServer и т.д.

Вопрос: почему Мартин назвал этот интерфейс ClientInterface и объяснил это так: "абстрактные классы более тесно ассоциированы со своими клиентами, чем с реализующими их конкретными классами" (страница 162). Объясните дураку, пожалуйста
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.