У меня есть класс с именем Document
, который можно расширить на Page
или Image
.Для каждого у меня есть метод вставки в базу данных.Вставка для Page
и Image
включает вставку для Document
.
Я сомневаюсь, что способ определить, какой метод будет вызван, - сначала проверка класса, например:
if (doc instanceof Document){
insertDoc(doc);
}
if (doc instanceof Page){
insertPage(doc);
}
if (doc instanceof Image){
insertImage(doc);
}
Или есть другой способ, потому что я всегда слышал, что использование instanceof
нехорошо.
Редактировать: В этом случае полиморфизм не работает, верно?Что-то вроде insert(Document doc)
, insert(Page doc)
и insert(Image doc)
.