В другом примере, если вы создаете приложение для ресторана, тогда вы должны описывать человека в контексте клиента.
Вам решать какую выбрать абстракцию, наиболее подходящую для вашей цели.
Прежде чем мы начнем создавать абстракцию, нам нужен контекст для нее.
Контекст имеет решающее значение при формировании абстракции.
После определения контекста и абстракции, мы определяет характеристики или атрибуты абстракции.
И в дополнение к атрибутам абстракция должна описывать базовое поведение концепции.
Всякий раз, когда мы создаем абстракцию, нам нужно помнить о контексте.
Если контекст изменяется, тогда может измениться и абстракция. А затем могут измениться ее атрибуты и поведение.
Инкапсуляция является фундаментальным принципом в объектно-ориентированном моделировании и программировании.
Есть много вещей, которые вы можете представить, как объекты.
Например, вы можете представить курс как объект.
Объект курса может иметь значения атрибутов, такие как определенное количество учащихся, стоимость и предварительные условия, а также конкретные поведения, связанные с этими значениями атрибутов.
И класс курса определяет основные атрибуты и поведение всех объектов курса.
Инкапсуляция включает в себя три идеи.
Как следует из названия, речь идет о создании своего рода капсулы. Капсула содержит что-то внутри.
И некоторое из этого что-то вы можете получить снаружи, а некоторое вы не можете.
Во-первых, вы объединяете значения атрибутов или данные, а также поведение или функции, которые совместно используют эти значения в автономном объекте.
Во-вторых, вы можете выставить наружу определенные данные и функции этого объекта, к которым можно получить доступ из других объектов.
В-третьих, вы можете ограничить доступ к определенным данным и функциям только внутри этого объекта.
Короче говоря, инкапсуляция формирует автономный объект путем связывания данных и функций, которые он требует для работы, предоставляет интерфейс, посредством которого другие объекты могут обращаться к нему и использовать его, и ограничивает доступ к некоторым внутренним деталям.
И вы определяете класс для данного типа объекта.
Абстракция помогает определить, какие атрибуты и поведение имеют отношение к концепции в некотором контексте.
Инкапсуляция гарантирует, что эти характеристики объединены вместе в одном классе.
Отдельные объекты, созданные таким образом из определенного класса, будут иметь свои собственные значения данных для атрибутов и будут демонстрировать результат поведения.
Вы обнаружите, что программирование проще, когда данные и код, который управляет этими данными, расположены в одном месте.
Данные объекта должны содержать только то, что