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, термин определён крайне расплывчато.
Кто из нас двоих прав?
Правильного ответа не существует до тех пор, пока кто-то не получит осознание с помощью той или иной версии, он же и определит, кто прав лично для него. Для другого правда может быть другой.
Я привел пример своей версии и выразил своё мнение, что термин для меня лично не размыт, совершенно чёткий.
Мы можем спорить до второго пришествия, и каждый останется при своём мнении.
Совершенно верно. Правда у каждого своя )) На этом предлагаю закончить дискуссию и не тратить на это время )) Всего доброго!
А то эдак мы и до альтернативной математики докатимся.
Впрочем, раз вы хотите закончить дискуссию, то и вам всего доброго ;))
Инкапсуляция в Python 3