С месяц назад дорогой товарищ
dargot в личной беседе посетовал на странные методы объектного программирования, практикуемые некоторыми программистами. Совершенно неясно, - говорил он, - зачем эти люди плодят такое множество интерфейсов, а потом постоянно кастуют их к реализациям и обратно. Неясно, зачем к каждому объекту граждане создают свою
(
Read more... )
Comments 201
Интересно, почему бы это нынешние светила программирования вот уже лет пять как настоятельно рекомендуют начинать обучение программированию не с Бейсиков и Дельфей, а с OCaML и упрощённого Scheme?
Reply
Пользователь дурак. Он никогда не заплатит за метровую программу 10 баксов, но с удовольствием заплатит 50 за ту же прогу на двух ДВД! ;)
Reply
Индусам-аутсорсерам часто платят за количество строк в коде, результат многие видели...
Пользователь за такую программу в большинстве случаев не платит ни копейки, потому что до релиза она не доживает :-)
Reply
(The comment has been removed)
> реализацию разных пользоательских интерфейсов, например, когда
> веб-морда или гуй основаны на интерфейсе и обращение к ним
> происходит по интерфейсу. Или, если возможно, то абстрактный класс.
> А так статья хорошая, спасибо.
Этот способ создания интерфейсов мне сильно не нравится. Поэтому я
придумал и внедрил авто-форму.
Reply
(The comment has been removed)
Reply
Ну, если вспомнить известную программистскую байку, то человек по фамилии Страуструп заделал С++ как раз таки для того, чтобы программисты на С не лишились работы. Отвлекаясь от вопроса, может ли человек по фамилии "Труп Страуса" сделать что-то хорошее (см. СоЛЖЕницын), можно констатировать: этим языком кракозяберный малопонятный синтаксис (см. С) сильно преумножился.
Интерфейс - это такой класс, где методы заявлены, но ни один из них не имеет реализации. Кроме того, в данном классе нет полей
Интерфейс -- это никакой не класс. Интерфейс -- это таблица (пронумерованных) методов, не более того.
каждый из которых является наследником IComparable
Это не наследование. Это реализация. Наследование -- это есть абстрактный класс TComparable. Принципиальная разница как раз в том, что интерфейс -- не сущность, а описание возможностей сущности. Ему нельзя наследовать, можно только заявить о его реализации.
Увы, некоторые языки накладывают ограничение на множественное ( ... )
Reply
> (пронумерованных) методов, не более того.
Детали реализации, есть мнение, нас не должны волновать на этом уровне
рассуждений.
> Это не наследование. Это реализация.
Разделение наследования и реализации надумано. И к тому же
противоречиво. Поскольку по этой концепции наследник абстрактного класса
и наследует и реализует одновременно.
Собственно, никакой разницы между этими процессами нет - нам не важно,
заявлена функция или уже реализована, если мы её переопределяем.
> Увы, некоторые языки накладывают ограничение на множественное
> наследование И слава Богу ( ... )
Reply
(The comment has been removed)
Это внешне как-то можно отличить от того случая, когда оно происходит?
Ну если вдруг кто-то незаметно для нас поменяет ранее абстрактный метод
на некую его реализацию, для нас что-то поменяется?
Reply
Reply
иерархии интерфейсов и параллельных им реализаций.
Reply
Reply
наследуется Unit, от Unit наследуются Dragoon и Hussar. Dragoon от
IDragoon. Hussar от IHussar. Очень, очень полезная получается схема.
Reply
Leave a comment