Инструменты пользователя

Инструменты сайта


pattern_adapter

Назад

Паттерн Адаптер преобразует интерфейс класса к другому интерфейсу, на который рассчитан клиент. Адаптер обеспечивает совместную работу классов, невозможную в обычных условиях из-за несовместимости интерфейсов.

Адаптер объектов

Адаптер объектов использует композицию, связи с тем что в языке JAVA нельзя использовать множественное наследование.

Animal
public interface Animal
{
    public void sound();
    public void move();
}
class Duck implements Animal
{
    public void sound()
    {
        System.out.println("Кря кря");
    }
 
    public void move()
    {
        System.out.println("Утка взлетает");
    }
 
}
class AnimalAdapter implements Animal
{
    private Car car;
    public AnimalAdapter(Car car)
    {
        this.car = car;
    }
    public void sound()
    {
        car.signal();
    }
 
    public void move()
    {
        car.move();
    }
 
}
Car
public interface Car
{
    public void signal();
    public void move();    
}
 
class Lada implements Car
{
    public void signal()
    {
        System.out.println("Биби");
    }
 
    public void move()
    {
        System.out.println("Машина едит");
    }
 
}
Main
public class Main
{
    public static void main(String[] args)
    {
        Animal duck = new Duck();
        duck.sound();
        duck.move();
 
        Animal car = new AnimalAdapter(new Lada());
        car.sound();
        car.move();        
    }
}

Адаптер классов

Адаптер классов использует множественное наследование.