ООП во FLASH 5


Настоящий Подкласс (Subclass)


Если бы подкласс существовал как класс информатики, мы бы могли уже сейчас создать подклассы Circle (Окружность) и Square (Квадрат), оба они содержали бы метод getArea (вычислить площадь) и каждый из них возвращал бы площадь, вычисленную абсолютно разными способами. На самом деле это изящная, но отчасти бесполезная демонстрация того, как OOП позволяет использовать один и тот же интерфейс для разных объектов. Важно другое: вы уже не видите "внутренних" калькуляций, а просто верите каждому, кто выдаёт правильный размер площади.

Это известно под термином "инкапсуляция" - заключение в непроницаемую оболочку чуждых среде элементов, или, проще говоря: "КАК ты это делаешь - твои проблемы, для меня главное, чтобы дело не стояло". Может, у вас уже был такой босс, если по этому поводу не особенно переживать, то работать вполне можно. Ведь для того, чтобы ставить такую задачу, "босс" и не должен быть программистом или графическим дизайнером, он тебе просто доверяет, исходя из твоего резюме и того опыта, что ты излагал ему при поступлении на работу. Разумеется, можно предположить, что в детском садике "босс" ни разу не рисовал цветными мелками, и, стало быть, не ему давать тебе советы по работе с цветом. С другой стороны, и руководство компанией, ежедневное и выматывающее, тоже не твоя область деятельности. Поэтому хорошее доброе отстранение поможет вам обоим не вдаваться глубоко в "чужие" сферы, не пересекаться в этих полях и не мешать друг другу. Разумеется, кто не выполняет работу, того увольняют. И не надо бояться применять эти стандарты поведения в классах, которые оздаёшь и используешь.

Идея инкапсуляции, или сокрытия неактуальной для пользователя информации, должна всегда быть у вас на уме при проектировании классов. Сообщать пользователю следует лишь то, что ему нужно знать, и ничего из того, что ему знать не нужно. Более того, пользователю совершенно незачем быть в курсе всех деталей работы класса (типа способа вычисления площади) перед его использованием. Всё, что ему нужно, уверенность в том, что значение площади возвращается, когда он вызывает метод getArea, независимо от типа геометрической фигуры.




Начало  Назад  Вперед



Книжный магазин