Адаптер - это паттерн, который позволяет преобразовать один интерфейс к другому.
ClassLoader - это специальный Java класс, который загружает другие Java классы в память.
Чтобы создавать объекты разных типов в зависимости от условий - используются Фабричный метод или Абстрактная фабрика.
В общем, научитесь называть вещи своими именами и сразу все становится на правильные места.