У меня есть некоторые функциональные возможности, которые мне нужны во всех моих классах, которые являются производными от UIView или UIImageView.
Более конкретно, у меня есть код, связанный с жестами, который нужен обоим этим классам.
В настоящее время моя реализация:
UIGestureView : UIView
UIGestureImageView : UIImageView
и сделать все классы производными от них.
Эти классы снова будут содержать методы, которые будет реализовывать производный класс.
Моя проблема в том, что код обработки жестов дублируется в UIGestureView
и в UIGestureImageView
.
Естественно (программистом на С ++) было бы использовать множественное наследование
UIGestureView : UIView, GestureHandler
UIGestureImageView : UIImageView, GestureHandler
и пусть GestureHandler
выполнит всю общую работу, но, насколько я понял, это невозможно.
Каков объективный способ сделать это (без слишком большого количества уровней, вызывающих детей и т. Д.)?
Просто чтобы подчеркнуть, проблема в том, как избежать реализации одного и того же кода дважды, один раз в UIView (или его производном классе) и снова для UIImageView (или его производного класса).