Search
Write a publication
Pull to refresh

Comments 10

Значение термина «инкапсуляция» расплывчато и отличается от источника к источнику… К примеру, Джон Митчелл… С другой стороны, Роберт Мартин ...

А слабо посмотреть первоисточник?
Первоисточник мало чем отличается по ценности от остальных источников. Со времен первоисточника концепция ООП улучшалась и переосмысливалась.
Значение термина «инкапсуляция» расплывчато и отличается от источника к источнику

Почему расплывчато? Инкапсуляция от англ. encapsulation и от лат. in capsula, то есть что-то в капсуле (коробочке). Далее не трудно вообразить некую коробочку (класс), сверху которой есть только какие-то кнопки управления (публичные методы), а в целом весь механизм скрыт от пользователя (программиста который использует класс).
В данном случае, любой класс в котором есть хотя бы одна переменная и один метод который ею управляет наглядно демонстрирует этот принцип

class Phone:
    number = "111-11-11"
    def print_number(self):
        print( "Phone number is: ", self.number )


Мне кажется, что здесь как раз таки нет принципа инкапсуляции, поле number открыто и доступно из вне. Можно вызвать метод, а можно обратится к полю = получим один и тот же результат, стало быть ничего не сокрыто (не инкапсулировано).
Почему расплывчато?

Потому как существенно отличается от источника к источнику.

Если рассматривать инкапсуляцию как сокрытие данных от пользователя — да, вы абсолютно правы, как данные так и метод открыты и доступны. Если использовать ваше определение, «группировка + сокрытие», опять таки, в этом примере данные и метод не скрыты (не инкапсулированы).

Этот пример иллюстрирует определеное значение термина «инкапсуляция» — «группировка данных и методов которые ими управляют в одно целое». В этом значении речи о сокрытии не идет, и доступ к данным не существеннен.
Почему расплывчато? Инкапсуляция от англ. encapsulation и от лат. in capsula, то есть что-то в капсуле (коробочке). Далее не трудно вообразить некую коробочку (класс), сверху которой есть только какие-то кнопки управления (публичные методы)

Мне кажется, что здесь как раз таки нет принципа инкапсуляции

Если для понимания значения некоторого термина нужно привлекать фантазию, аналогии, субъективные ассоциации и аргумент «мне кажется, что», то это и значит, что термин расплывчато определён.
Если для понимания значения некоторого термина нужно привлекать фантазию, аналогии, субъективные ассоциации и аргумент «мне кажется, что»

Интересное заявление. С "мне кажется" согласен, это было лишнее в моём предложении, надо было более увереннее писать.


Но всё, что вы перечислили нужно исключать, чтобы получить понимание о термине? А как собственно понимать остаётся? Зубрёжкой?


В теориях получается нет терминов, так как их нельзя понимать по-вашему, так как для этого нужно привлекать всё, что вы перечислили?


термин расплывчато определён

Он не может быть в принципе быть расплывчатым или не расплывчатым. Не существует таких у него свойств. Расплывчатость лежит в границах только отдельно конкретно взятой личности и за пределы его понимания не выходит. У кого-то расплывчато, а у кого то не расплывчато. Тогда как Вы определите, расплывчат он сам по себе термин или нет?

Все эти вещи хороши, если они помогают понять уже существующее чёткое определение. Но если кроме них ничего нет, то каждый как хочет, так и толкует.

Вот, например, ваш пример с коробочкой. Вы представили себе коробочку, увидели в своём воображении, что содержимое в ней спрятано, и пришли к выводу, что инкапсуляция — это сокрытие и ограничение доступа.
Я представил себе ту же коробочку, но увидел прежде всего то, что она — контейнер, который позволяет удобно держать в одном месте несколько вещей. И для меня инкапсуляции — это группировка логически связанных данных и методов.

Кто из нас двоих прав? А этого нельзя сказать, если у нас нет чёткого определения, а только картинка с коробочкой.

Мне кажется, что здесь как раз таки нет принципа инкапсуляции

А вот мне, исходя из моего понимания инкапсуляции, кажется, что есть.
И никаких аргументов, кроме «мне кажется» и «ну представьте себе коробочку», ни вы мне не сможете привести, ни я вам. Мы можем спорить до второго пришествия, и каждый останется при своём мнении. Ergo, термин определён крайне расплывчато.
Кто из нас двоих прав?

Правильного ответа не существует до тех пор, пока кто-то не получит осознание с помощью той или иной версии, он же и определит, кто прав лично для него. Для другого правда может быть другой.
Я привел пример своей версии и выразил своё мнение, что термин для меня лично не размыт, совершенно чёткий.


Мы можем спорить до второго пришествия, и каждый останется при своём мнении.

Совершенно верно. Правда у каждого своя )) На этом предлагаю закончить дискуссию и не тратить на это время )) Всего доброго!

Термин не может быть одновременно чётко определённым и в то же время значить для каждого что-то свое. Иначе это не термин.
А то эдак мы и до альтернативной математики докатимся.
Впрочем, раз вы хотите закончить дискуссию, то и вам всего доброго ;))
Sign up to leave a comment.

Articles