Шаг 104.
Язык программирования Go.
Пример использования семейства пользовательских типов

    На этом шаге мы начнем рассматривать использование семейства пользовательских типов в Go на примере.

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

    Первый состоит в использовании иерархии типов, или встроенных интерфейсов. Второй - в создании множества независимых интерфейсов, которые затем можно свободно компоновать.

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


Рис.1. Пример работы приложения

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

    Пакет image из стандартной библиотеки экспортирует интерфейс image.Image. Этот интерфейс определяет три метода:

    Интерфейс image.Image не определяет метода для изменения пикселя, даже при том, что некоторые типы в пакете image имеют метод Set(x, y int, fill color.Color).

    В пакете image/draw имеется интерфейс draw.Image, встраивающий интерфейс image.Image, который определяет метод Set(). Среди прочих интерфейс draw.Image реализуется типами image.Gray и image.RGBA из стандартной библиотеки.

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


Предыдущий шаг Содержание Следующий шаг