Размер шрифта
-
+

Введение в объектно-ориентированный дизайн с Java - стр. 26

Свойства, которые эквивалентны переменным-членам Java, состоят из имени переменной и типа переменной.

Типы переменной, как и в Java, могут быть классами или примитивными типами.

Операции, эквивалентные методам Java, состоят из имени операции, списка параметров и типа возвращаемого значения.



Теперь, если мы сравним карточку CRC с нашей диаграммой классов, вы можете заметить, как некоторые из обязанностей карточки превратились в свойства в диаграмме классов.

Некоторые из них стали операцией.

Конечно, вы можете использовать CRC-карточки для абстрагирования объекта, но тут возникают двусмысленности, которые препятствуют программисту перевести CRC-карточку в код.

Одна из двусмысленностей заключается в том, что CRC-карточка не показывает разделения между свойствами и операциями.

Все они перечислены вместе.

Теперь, когда у нас есть представление диаграммы классов, давайте реализуем его в код Java.



Диаграммы классов очень близки к реализации, что делает перевод на Java очень простым.

Имя класса в диаграмме превращается в класс в Java.

Свойства в диаграмме классов превращаются в переменные-члены.

И, наконец, операции превращаются в методы.

Преобразование кода в диаграмму классов также является простым.

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

А тот факт, что они далеки от кода, заставляет вас сосредоточиться на задаче, а не на реализации.

С другой стороны, диаграммы классов намного ближе к коду, и вы можете четко передать свой технический дизайн разработчикам.

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

Детали будут отвлекать и отнимать много времени, при создании первоначальных проектов.

Принцип Инкапсуляции в UML

Теперь, когда вы понимаете основные принципы объектно-ориентированного программирования, вам нужно научиться их применять.

Давайте посмотрим, как применить инкапсуляцию.

Как вы помните, инкапсуляция включает в себя три идеи.



Во-первых, вы объединяете данные и функции, которые управляют данными, в автономный объект.

Во-вторых, вы можете предоставить определенные данные и функции этого объекта, чтобы к ним можно получить доступ из других объектов.

И в-третьих, вы можете ограничить доступ к определенным данным и функциям только внутри этого объекта.

Итак, как это выглядит в коде?

И как выглядит в дизайне?

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

Страница 26