ZeroC ICE: в чем разница между интерфейсами и классами?

В настоящее время я изучаю ZeroC ICE и ничего не понимаю: в чем реальная разница между интерфейсом и классом? Я знаю, что у интерфейса не может быть атрибутов и только операции, но я не понимаю, почему мы должны использовать интерфейсы вместо классов, когда мы используем только операции. В документации Ice есть такое объяснение: https://doc.zeroc.com/display/Ice36/Architectural+Implications+of+Classes#ArchitecturalImplicationsofClasses-ClasseswithOperations (см. Классы с операциями).

«Но имейте в виду, что, как только вы используете классы с операциями, вы, по сути, используете собственный код на стороне клиента, и, следовательно, вы больше не можете наслаждаться прозрачностью реализации, обеспечиваемой интерфейсами».

Какая реализация прозрачна? Может ли кто-нибудь объяснить мне?

Спасибо.


person B. Clement    schedule 20.09.2016    source источник


Ответы (1)


Интерфейсы никогда не создаются на стороне клиента.

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

Если вы используете классы только как интерфейсы, то разницы никакой.

person veio    schedule 24.09.2016