ну, у тебя есть что-то в таком духе:
class Apple
def clear
# some logic
end
end
class Orange
def clear
# some logic
end
end
в таком случае тебе все равно какой класс использовать, так как интерфейс одинаковый. делать враппер над фруктами - лишнаяя абстракция, которая не понятно какую логику решить пытается в твоем случае, кроме упрощенного способа получения сервера, что решается обычным квери
fruit = (Apple | Orange).new
fruit.clear