Я привык при программировании «вслушиваться» в код, анализируя его с точки зрения понятности и логичности. Хороший код в моем понимании как складный рассказ. Поэтому многие вещи я делают интуитивно.
Недавно пришлось спорить с одним товарищем на тему интерфейсов. Я как бы понимаю интуитивно, но аргументировано отстоять свою позицию не получается.
Суть спора в следующем: товарищ сторонник того, что бы на каждый класс клепать интерфейс. Я в общем-то интуитивно понимаю, что это действие когда-то имеет смысл, а когда-то нет. Проблема в том, что когда какой-то код не имеет смысла, то он как бы незаконно занимает место и только напрасно засоряет проект. Поэтому все же стоит различать когда надо, а когда нет и не делать «на всякий случай».
Попытался для себя составить список когда интерфейс нужен:
1. Есть несколько реализаций. Самый очевидный случай.
2. Реализация одна, но как бы подразумевается, что может быть несколько.
Есть еще такая штука: сегодня реализация одна, а завтра станет несколько. Но я считаю, что это не повод засорять код, рефакторинг «выделение интерфейса» - очень простой.
Больше не придумал. С моей точки зрения во всех остальных случаях класс вполне способен жить сам по себе.
←
1
2
→
![](/photos/62698:-189720165.png)
Ответ на:
комментарий
от Sonsee
![](/photos/51070:-337534894.png)
![](/photos/70352:1171563277.gif)
Ответ на:
комментарий
от bga_
![](/photos/51070:-337534894.png)
![](/photos/51070:-337534894.png)
![](/photos/24345:1808597202.jpg)
Ответ на:
комментарий
от tailgunner
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от dizza
![](/photos/62698:-189720165.png)
Ответ на:
комментарий
от dizza
![](/photos/70352:1171563277.gif)
Ответ на:
комментарий
от dizza
![](/photos/24345:1808597202.jpg)
Ответ на:
комментарий
от tailgunner
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от Sonsee
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от dizza
![](/photos/62698:-189720165.png)
Ответ на:
комментарий
от dizza
![](/photos/24345:1808597202.jpg)
![](/photos/57883:-141182563.jpg)
Ответ на:
комментарий
от Sonsee
![](/photos/48985:-726580331.png)
![](/photos/45690:760957841.jpg)
Ответ на:
комментарий
от tailgunner
![](/photos/45690:760957841.jpg)
![](/photos/42402:-10685519.png)
Ответ на:
комментарий
от t184256
![](/photos/48985:-726580331.png)
![](/photos/13390:-792148711.jpg)
Ответ на:
комментарий
от dizza
![](/photos/37946:-1304330866.jpg)
![](/img/p.gif)
Ответ на:
комментарий
от archimag
![](/img/p.gif)
![](/photos/81315:2119352240.png)
Ответ на:
комментарий
от tailgunner
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от mi_estas
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от dizza
![](/photos/24345:1808597202.jpg)
Ответ на:
комментарий
от tailgunner
![](/photos/51070:-337534894.png)
![](/photos/82704:132737704.jpg)
Ответ на:
комментарий
от morse
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от dizza
![](/photos/82704:132737704.jpg)
Ответ на:
комментарий
от dizza
![](/photos/25402:744273648.jpg)
![](/photos/25402:744273648.jpg)
Ответ на:
комментарий
от Sonsee
![](/photos/25402:744273648.jpg)
Ответ на:
комментарий
от morse
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от iZEN
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от dizza
![](/photos/82704:132737704.jpg)
Ответ на:
комментарий
от iZEN
![](/photos/82704:132737704.jpg)
Ответ на:
комментарий
от morse
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от dizza
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от dizza
![](/photos/82704:132737704.jpg)
Ответ на:
комментарий
от dizza
![](/photos/25402:744273648.jpg)
Ответ на:
комментарий
от iZEN
![](/photos/25402:744273648.jpg)
![](/photos/25402:744273648.jpg)
Ответ на:
комментарий
от morse
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от iZEN
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от iZEN
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от dizza
![](/photos/78677:-827767707.jpg)
Ответ на:
комментарий
от energyclab
![](/photos/51070:-337534894.png)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Интерфейс для плагинов в ООП (2013)
- Форум [тип][ооп][интерфейс]Почему считается, что тип == интерфейс? (2011)
- Форум ООП (2015)
- Форум Что делает ООП - ООП? (2015)
- Форум ООП (2008)
- Форум ООП (2005)
- Форум Опять ООП (2016)
- Форум Широковещательное ООП (2015)
- Форум [универ][ООП] ООП в структурных языках (2009)
- Форум [ООП][Вещества] на недостатки ООП указывает матрица? (2010)