В общем на словах принцип “черного ящика” звучит неплохо... А на деле?
Для примера давайте рассмотрим поршневой ДВС (двигатель внутреннего сгорания). Сколько в данный момент существует схем поршневых ДВС? Множество: двухтактная, четырехтактная (и даже пяти и шести тактные); оппозитные, V-образные, W-образные, звезда.... А сколько типов коленвалов? А поршней? А шатунов? Если все это собрать воедино - за тысячу вариантов вылазим аж бегом.
И все же, не смотря на все различия, у тех же поршней практически любых конфигураций есть два схожих элемента - две цилиндрических поверхности. Одна - от пальца, вторая от блока цилиндров. Самое “удивительное”, что эти же поверхности отвечают за взаимодействие с другими элементами сборки.
У шатуна - аналогично: один цилиндр - под палец, второй - под коленвал. И так далее. А это значит, что если во всех вариантах наших поршней, коленвалов, шатунов, блоков цилиндров будут те же самые общие элементы (к примеру в самом начале дерева), а остальное просто ссылается на них... То наша финишная сборка будет не просто меняться при изменении численных параметров, но даже замена одного из компонентов на другой не вызовет рассыпания сборки, ведь элементы по которым есть сопряжения никуда не делись!
Так вот в данном примере поршень, шатун и прочие элементы являются теми самыми блоками о которых мы говорили в прошлый раз. А общие сопрягаемые элементы - те самые связи блоков, те самые входные и выходные параметры. И, как было замечено, нам глубоко фиолетово (аж до черного цвета), как там они сделаны эти поршни, если они сделаны с учетом “физики” модели (т.е. соответствуют спецификации).
Ну вот за два раза Мы с Вами рассмотрели принцип инкапсуляции. Длинновато, но надеюсь оно того стоило. В следующий раз поговорим об абстракции.
Комментариев нет:
Отправить комментарий