Прямо сейчас у меня есть следующий дизайн:
Item
|------------------------|
ImageUploader |
|--------------| |
| | |
AvatarUploader FaviconUploader NameChanger
Эти классы представляют собой различные предметы, которые пользователи могут приобретать и использовать.
Однако я добавляю новый класс IconUploader
. В отличие от других классов, это не элемент, который можно использовать, а административная панель. ImageUploader
содержит определенные проверки безопасности, чтобы убедиться, что загружены только безопасные файлы, а IconUploader
также требует этих мер предосторожности.
Однако я не уверен, что делать. В идеале я бы сделал ImageUploader
интерфейсом, но у вас не может быть реального кода в интерфейсах, поэтому я не могу этого сделать. Я мог бы вывести ImageUploader
из иерархии классов Item
и сделать его функции статичными, но мне это не кажется правильным. Это? И если это не так, каков наилучший способ реструктурировать это?
N.B .: Я использую PHP, если это влияет на что-либо.